Единственный способ иметь только чтение - использовать встроенные функции get
и set
в AS3.
Редактировать: исходный код был только для записи. Только для чтения, используйте get
вместо set
, например:
package
{
import flash.display.Sprite;
public class TestClass extends Sprite
{
private var _foo:int = 5;
public function TestClass() {}
public function get foo():int{ return _foo; }
public function incrementFoo():void { _foo++; }
}
}
Который позволяет вам получить доступ к foo следующим образом:
var tc:TestClass = new TestClass();
trace(tc.foo);
tc.incrementFoo();
trace(tc.foo);
Вот оригинал для справки только на запись:
package
{
import flash.display.Sprite;
public class TestClass extends Sprite
{
private var _foo:int;
public function TestClass() {}
public function set foo(val:int):void{ _foo = val; }
}
}
Это позволит вам установить значение _foo внешне так:
var tc:TestClass = new TestClass();
tc.foo = 5;
// both of these will fail
tc._foo = 6;
var test:int = tc.foo;