![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Feb 2004
Сообщений: 36
|
(к сказанному выше) У меня Flash MX.
|
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Цитата:
Object.watch Доступность Flash Player 6. Синтаксис myObject.watch( prop, callback [, userData] ) Параметры prop Строка, указывающая имя наблюдаемого свойства объекта. callback Функция, вызываемая при изменении наблюдаемого свойства. Этот параметр является функцией (как объект), а не ее именем в строковом виде. Форма для callback - callback(prop, oldval, newval, userData). userData произвольный фрагмент ActionScript данных, передаваемых методу callback. Если параметр userData отсутствует, то методу передается undefined. Это необязательный параметр. Возвращается Значение true, если "наблюдатель" (watchpoint) был успешно создан, в противном случае - false. Описание Метод, определяет callback функцию (функцию обратного вызова), вызываемую, если изменилось указанное свойство ActionScript объекта. Когда свойство изменяется, callback функция вызывается с myObject как содержащий объект. Наблюдатель может фильтровать (или аннулировать) передаваемое значение, возвращая модифицированный newval (или oldval). Если удалить свойство, отслеживаемое наблюдателем, сам наблюдатель от этого не пострадает. Если в последствии восстановить удаленное свойство, наблюдатель будет опять функционировать. Для удаления наблюдателя используется метод Object.unwatch. Только один наблюдатель может быть подключен к свойству. Последовательные вызовы Object.watch к одному и тому же свойству будут просто заменять наблюдателя. Метод Object.watch ведет себя подобно функции Object.watch в Netscape JavaScript 1.2 и более поздних версиях. Основное отличие в параметре userData, который добавлен во Flash в Object.watch, не поддерживаемый в Netscape Navigator. Можно передавать параметр userData в callback функцию и использовать его в ней. Метод Object.watch не может наблюдать за геттер/сеттер (getter/setter) свойствами. Они управляются через "ленивое определение" — значение свойства заранее не определено до тех пор, пока оно не вызвано. "Ленивое определение" часто является эффективным, т.к. свойство постоянно не меняется и достаточно отслеживать его состояние только в момент запроса. Однако Object.watch осуществляет постоянное наблюдение, поэтому для работы с геттер/сеттер свойствами этот метод неэффективен. Вообще, ActionScript предопределенные свойства, типа _x, _y, _width и _height являются геттер/сеттер свойствами и они не могут быть отслежены методом Object.watch. Пример Этот пример показывает компонент CheckBox с методами, устанавливающими метку и значение каждого экземпляра чекбокса: myCheckBox1.setValue(true); myCheckBox1.setLabel("new label"); ... Удобно думать о значении и метке чекбокса, как о его параметрах. Возможно использовать Object.watch для доступа к значению и метке как к свойствам, а не вызовами методов, тек как это сделано ниже: // Определение конструктора для CheckBox класса function CheckBox() { ... this.watch ('value', function (id, oldval, newval)) { ... } this.watch ('label', function (id, oldval, newval)) { ... } } При изменении значения или метки, вызывается функция, определенная в компоненте, которая выполняет необходимые действия по его обновлению. Следующее выражение использует обработчик Object.watch, чтобы сообщить компоненте об изменении значения. myCheckBox1.value = false; Следующий синтаксис более краткий, чем предыдущий: myCheckBox1.setValue(false); |
|
|||||
|
Регистрация: Feb 2004
Сообщений: 36
|
Всем приветы!
Есть у меня мувик, из примеров, с птичкой. Я хочу привязаться к событию на изменения переменной, отвечающей за вращение. Делаю это примерно следующим образом: У меня Flash MX. Это все работает, если экспортировать мувик, как для Flash 6, но не работает для Flash 5. Он не знает о watch. Как заставить это работать в любой (в как можно больше) версии Flash? Чем заменить watch? |
|
|||||
|
Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось FreeLander; 11.11.2004 в 19:31. |
|
|||||
|
Регистрация: Feb 2004
Сообщений: 36
|
Ясно...спасибо.
Хотя, хочется чего-то более красивого... |
![]() |
Часовой пояс GMT +4, время: 20:49. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|