![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 9
|
Есть текстовая переменная: status.
Нужно создать слушатель события, что бы при изменении статуса, выполнялась определенная функция. Помогите пожалуйста, как это сделать. Спасибо. |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 9
|
Да. Я нашел в сети такой код:
//The document class package { import flash.display.Sprite; import flash.events.Event; import flash.events.EventDispatcher; public Class TestDocClass extends Sprite { private var _model:Model; public function TestDocClass():void { _model = new Model(); _model.addEventListener(Model.VALUE_CHANGED, onModelChanged); } private function onModelChanged(e:Event):void { trace('The value changed'); } } } //The model that holds the data (variables, etc) and dispatches events. Save in same folder as DOC Class; package { import flash.events.Event; import flash.events.EventDispatcher; public class Model extends EventDispatcher { public static const VALUE_CHANGED:String = 'value_changed'; private var _someVar:someVarType; public function Model():void { trace('The model was instantiated.'); } public function set someVariable(newVal:someVarType):void { _someVar = newVal; this.dispatchEvent(new Event(Model.VALUE_CHANGED)); } } } Я даже не понимаю что означает ![]() |
|
|||||
|
Modus ponens
|
public Class TestDocClass
Class -> class должно быть со строчной. public static const VALUE_CHANGED:String = 'value_changed'; должно быть ---> public static const VALUE_CHANGED:String = 'valueChanged'; И немного странные комментарии А так пример вроде рабочий.package <имя> Пакет куда складываются классы (физически, как правило, он представлен одной папкой с именем <имя> в которой храняться AS файлы с классами, но таких папок может быть больше одной - это зависит от того, сколько класс-путей у вас есть в проекте). import <полное имя класса> Директива указывающая компилятору где искать класс / функцию / переменную / неймспейс, если они нигде не объявляется в коде. Чтобы использовать геттеры и сеттеры вам прийдется научиться пользоваться классами, таймлайновые скрипты такой возможности вам не дают.
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Константа VALUE_CHANGED должна быть у кастомного события ModelEvent. И геттера нет в модели. И сеттер отстойненький.
|
|
|||||
|
__etc, если не трудно, растолкуй почему VALUE_CHANGED должна быть у кастомного события, из-за того что так принято или есть более веские резоны?
не понятно зачем вещать свое событие, если оно ничего не должно нести, кроме самого факта изменения? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Если уже придумали кастомный тип, тогда и событие тоже кастомное должно быть. Это константа события, а не модели. В противном случае можно было ограничится обычным Event.CHANGE.
|
|
|||||
|
Регистрация: Mar 2009
Сообщений: 357
|
если не трудно, можно ссылку на рабочий нормальный геттер/сеттер?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|