В моем классе ActionScript3 я могу иметь свойство с геттером и сеттером? - PullRequest
4 голосов
/ 30 сентября 2008

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

Ответы [ 3 ]

20 голосов
/ 30 сентября 2008

Хорошо, вы можете просто использовать базовый синтаксис getter / setter для любого свойства вашего класса 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;
        }
    }
}
3 голосов
/ 30 сентября 2008

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

Пример:


private var _foo:String = "";

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

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

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

0 голосов
/ 02 июля 2011

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

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

}

import flash.display.Sprite;

import flash.text.TextField;

класс Testvar расширяет Sprite { открытый тест var: String;

public function Testvar() 
{
}
public function set mynewVar(newTest:String):void 
{
       test = newTest;
}
public function get myVar():String 
{
       return test;
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...