Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.06.2009, 02:07
actualizator вне форума Посмотреть профиль Отправить личное сообщение для actualizator Найти все сообщения от actualizator
  № 1  
Ответить с цитированием
actualizator

Регистрация: Mar 2009
Сообщений: 9
По умолчанию Как слушать изменение переменной в AS3?

Есть текстовая переменная: status.

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

Помогите пожалуйста, как это сделать.

Спасибо.

Старый 12.06.2009, 02:08
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Да здравствуют сеттеры и геттеры.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 12.06.2009, 03:00
actualizator вне форума Посмотреть профиль Отправить личное сообщение для actualizator Найти все сообщения от actualizator
  № 3  
Ответить с цитированием
actualizator

Регистрация: Mar 2009
Сообщений: 9
Да. Я нашел в сети такой код:

Код AS3:
//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));
    }
  }
}
Может кто нибудь может обьяснить на пальцах что здесь что..?
Я даже не понимаю что означает
Код AS3:
package
{
  import flash.display.Sprite;

Старый 12.06.2009, 03:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
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

Старый 12.06.2009, 09:16
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Константа VALUE_CHANGED должна быть у кастомного события ModelEvent. И геттера нет в модели. И сеттер отстойненький.

Старый 12.06.2009, 15:29
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
__etc, если не трудно, растолкуй почему VALUE_CHANGED должна быть у кастомного события, из-за того что так принято или есть более веские резоны?
не понятно зачем вещать свое событие, если оно ничего не должно нести, кроме самого факта изменения?

Старый 12.06.2009, 15:33
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Если уже придумали кастомный тип, тогда и событие тоже кастомное должно быть. Это константа события, а не модели. В противном случае можно было ограничится обычным Event.CHANGE.

Старый 16.06.2009, 23:56
loover вне форума Посмотреть профиль Отправить личное сообщение для loover Найти все сообщения от loover
  № 8  
Ответить с цитированием
loover
 
Аватар для loover

Регистрация: Mar 2009
Сообщений: 357
если не трудно, можно ссылку на рабочий нормальный геттер/сеттер?

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.