Могу ли я иметь свойство с геттером и сеттером в моем классе ActionScript3?
Могу ли я иметь свойство с геттером и сеттером в моем классе ActionScript3?
Ответы (3)
Хорошо, вы можете просто использовать базовый синтаксис получения / установки для любого свойства вашего класса AS3. Например
package {
public class PropEG {
private var _prop:String;
public function get prop():String {
return _prop;
}
public function set prop(value:String):void {
_prop = value;
}
}
}
Да, вы можете создавать функции получения и установки внутри класса AS3.
Пример:
private var _foo:String = "";
public function get foo():String{
return _foo;
}
public function set foo(value:String):void {
_foo= value;
}
дополнительную информацию о геттерах и сеттерах можно найти здесь
Получатель - это функция с возвращаемым значением в зависимости от того, что мы возвращаем. У установщика всегда есть один параметр, поскольку мы даем переменной новое значение через параметр.
Сначала мы создаем экземпляр класса, содержащий методы получения и установки, в нашем случае это «a». Затем мы вызываем установщик, если мы хотим изменить переменную и используя точечный синтаксис, мы вызываем функцию установщика и с помощью оператора = заполняем параметр. Чтобы получить значение переменной, мы используем геттер аналогично тому, как показано в примере (a.myVar). В отличие от обычного вызова функции, мы опускаем круглые скобки. Не забудьте добавить тип возвращаемого значения, иначе будет ошибка.
упаковка {
import flash.display.Sprite;
import flash.text.TextField;
public class App extends Sprite
{
private var tsecField:TextField;
private var tField:TextField;
public function App()
{
myTest();
}
private function myTest():void
{
var a:Testvar = new Testvar();
tField = new TextField();
tField.autoSize = "left";
tField.background = true;
tField.border = true;
a.mynewVar = "This is the new var.";
tField.text = "Test is: "+a.myVar;
addChild(tField);
}
}
}
импортировать flash.display.Sprite;
import flash.text.TextField;
class Testvar расширяет Sprite {public var test: String;
public function Testvar()
{
}
public function set mynewVar(newTest:String):void
{
test = newTest;
}
public function get myVar():String
{
return test;
}
}