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

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

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

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
По умолчанию AsBroadcaster. Как сгенерить кастомное событие в классе?

На АС2 не писал уже давно. Не понимаю как сделать, чтобы мувик генерил события
На код:

Код:
import mx.utils.Delegate;
import AsBroadcaster;


class Slot extends MovieClip {
    
    private var intervalId:Number;
    private var currentCount:Number;
    
    public function Slot() {
        
        AsBroadcaster.initialize(this);
        this.currentCount = 1;
        
        this.rotateSlot();
    }
    
    public function rotateSlot():Void {
        this.intervalId = setInterval(Delegate.create(this,myTimer), 25);
    }
    
    private function myTimer():Void {
        
        this.currentCount++;
        if (this.currentCount % 30 == 0) {
            clearInterval(this.intervalId);
            trace(this);
            this.broadcastMessage("onStopRotating");
        }
        updateAfterEvent();
    }
}
Выдает ошибку:
Цитата:
There is no method with the name "broadcastMessage";

Старый 19.04.2008, 14:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Вместо this в
Код:
AsBroadcaster.initialize(this);
создайте объект obj и вещайте от него
Код:
AsBroadcaster.initialize(obj);
...
obj.broadcastMessage("onStopRotating");

ps. Хотя нет, можно и лучше сделать так. Оставить свой код, но добавить к нему
Код:
private var broadcastMessage:Function;
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 19.04.2008 в 14:57.
Старый 19.04.2008, 15:03
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
broadcastMessage на самом деле есть, AsBroadcaster.initialize(this) его скопирует в экземпляр, но компилятор об этом не знает..
т.е. надо его просто задекларировать:
private var broadcastMessage:Function;
public var addListener:Function;

вещание от объекта решает вопрос в том смысле, что компилятор не проверяет его поля..

вещать от класса или созданного объекта в конечном итоге не принципиально, хотя мне больше по душе первое: не люблю лишние детали..

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

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

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


 


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


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