Слушатель ENTER_FRAME в расширенных классах для as3 - PullRequest
0 голосов
/ 28 августа 2009

Я работаю над изучением основ AS3 и прорабатываю учебное пособие. Мы только что создали класс, который при связывании с видеоклипами (или, возможно, с любым спрайтом) будет увеличивать их при наведении на них мыши. Чтобы убедиться, что я запомнил все принципы, я попытался создать класс, который заставлял бы спрайт вращаться при наведении на него и останавливаться, когда я выкатывался, однако у меня возникают проблемы с тем, чтобы слушатель ENTER_FRAME работал хорошо. Любая идея, где я иду не так?

пакет { импорт flash.display.Sprite; импорт flash.events.MouseEvent; импорт flash.events.Event;

public class Spinnah extends Sprite
{
    private var _origRotation:Number;

    public function Spinnah()
    {
        _origRotation = this.rotation;
        this.addEventListener(MouseEvent.ROLL_OVER, eFrameOn);
        this.addEventListener(MouseEvent.ROLL_OUT, stopSpin);
    }

    private function eFrameOn (Event:MouseEvent):void
    {
        stage.addEventListener(Event.ENTER_FRAME, spin);
    }

    private function spin (event:Event):void
    {
        this.rotation += 1;
    }

    private function stopSpin (event:Event):void
    {
        stage.removeEventListener(Event.ENTER_FRAME, spin);
        this.rotation = _origRotation;
    }
}

}

1 Ответ

0 голосов
/ 28 августа 2009

ничего себе Я идиот. Я заставлял функцию ROLL_OUT использовать неправильный слушатель и имел некоторые ошибки в заглавных буквах Сожалею. Ради архивов, вот рабочий код.

package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;

public class Spinnah extends Sprite
{
    private var _origRotation:Number;

    public function Spinnah()
    {
        _origRotation = this.rotation;
        this.addEventListener(MouseEvent.ROLL_OVER, eFrameOn);
        this.addEventListener(MouseEvent.ROLL_OUT, stopSpin);
    }

    private function eFrameOn (event:MouseEvent):void
    {
        stage.addEventListener(Event.ENTER_FRAME, spin);
    }

    private function spin (event:Event):void
    {
        this.rotation += 1;
    }

    private function stopSpin (event:MouseEvent):void
    {
        stage.removeEventListener(Event.ENTER_FRAME, spin);
        this.rotation = _origRotation;
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...