プライベートセッターとパブリックゲッターでテストクラスを作成しました。元のセッターはより多くの値を設定しましたが、シンプルさのためにコードを最小限に抑えました。クラスのインスタンス化時にプライベートセッターにアクセスできない(ActionScript 3)
package Lib
{
public class Test
{
private var _data:String;
private var _isLoggedIn:Boolean;
// isLoggedIn getter and setter
public function get isLoggedIn():Boolean
{
return (_isLoggedIn == true && _data != null);
}
private function set isLoggedIn(value:Boolean):void
{
_isLoggedIn = value;
}
private function isLoggedInSet(value:Boolean):void
{
_isLoggedIn = value;
}
// constructor
public function Test()
{
isLoggedIn = false;
isLoggedInSet (false);
}
}
}
正常にコンパイルされることに注意してください。期待通りに動作します。しかし、すぐに私は私のメインMXMLでこれを使用しよう:isLoggedInSet (false);
が正常に動作することを
Multiple markers at this line:
-1178: Attempted access of inaccessible property isLoggedIn through a reference with static type Lib:Test.
-1059: Property is read-only.
-isLoggedIn
注:
import Lib.Test;
protected function fubar():void
{
var test:Test = new Test();
}
私はTest.as(!原文のまま)で、このエラーが発生します。これはバグか機能ですか?バグのように感じる...または私は何か間違っている?
EDIT:これはもっと間違っていると感じ、それが動作します:
private function get isLoggedIn():Boolean
{
return (_isLoggedIn == true && _data != null);
}
public function get isLoggedInPublic():Boolean
{
return isLoggedIn;
}
[ActionScript - 読み取り専用プロパティとプライベートセットメソッドの可能な複製?](http://stackoverflow.com/questions/5465793/actionscript-read-only-property-and-private-set-method) – poke