Могу ли я иметь свойство с геттером и сеттером в моем классе ActionScript3?

Могу ли я иметь свойство с геттером и сеттером в моем классе ActionScript3?


person Pavel Chuchuva    schedule 29.09.2008    source источник
comment
Что ты имеешь в виду? У вас может быть класс, у которого есть свойства с геттерами и сеттерами.   -  person Max Stewart    schedule 30.09.2008
comment
Да, это именно то, что мне нужно. Извините за непонятность.   -  person Pavel Chuchuva    schedule 30.09.2008


Ответы (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;
        }
    }
}
person Max Stewart    schedule 29.09.2008

Да, вы можете создавать функции получения и установки внутри класса AS3.

Пример:


private var _foo:String = "";

public function get foo():String{
    return _foo;
}

public function set foo(value:String):void {
    _foo= value;
}

дополнительную информацию о геттерах и сеттерах можно найти здесь

person JustLogic    schedule 29.09.2008

Получатель - это функция с возвращаемым значением в зависимости от того, что мы возвращаем. У установщика всегда есть один параметр, поскольку мы даем переменной новое значение через параметр.

Сначала мы создаем экземпляр класса, содержащий методы получения и установки, в нашем случае это «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;
}

}

person Swati Singh    schedule 02.07.2011