Я сделал тестовый класс с частным сеттером и публичным геттером. Исходный установщик установил больше значений, но для простоты я свернул код.
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:
import Lib.Test;
protected function fubar():void
{
var test:Test = new Test();
}
Я получаю эти ошибки в Test.as (sic!):
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
Обратите внимание, что isLoggedInSet (false);
работает нормально. Это ошибка или особенность? По ощущениям жучок ... Или я что-то не так делаю?
РЕДАКТИРОВАТЬ : Это кажется еще более неправильным, но это работает:
private function get isLoggedIn():Boolean
{
return (_isLoggedIn == true && _data != null);
}
public function get isLoggedInPublic():Boolean
{
return isLoggedIn;
}