Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   AsBroadcaster. Как сгенерить кастомное событие в классе? (http://www.flasher.ru/forum/showthread.php?t=111234)

terbooter 19.04.2008 13:47

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";

iNils 19.04.2008 14:34

Вместо this в
Код:

AsBroadcaster.initialize(this);
создайте объект obj и вещайте от него
Код:

AsBroadcaster.initialize(obj);
...
obj.broadcastMessage("onStopRotating");


ps. Хотя нет, можно и лучше сделать так. Оставить свой код, но добавить к нему
Код:

private var broadcastMessage:Function;

silin 19.04.2008 15:03

broadcastMessage на самом деле есть, AsBroadcaster.initialize(this) его скопирует в экземпляр, но компилятор об этом не знает..
т.е. надо его просто задекларировать:
private var broadcastMessage:Function;
public var addListener:Function;

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

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


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

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