Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   проблема с обработчиками событий (http://www.flasher.ru/forum/showthread.php?t=153126)

CARVILLE 29.03.2011 01:40

проблема с обработчиками событий
 
Здравствуйте, уважаемые форумчане. Я новичек в AS и хотелось бы узнать у вас следующее:
Есть модель танка, для которого создан обработчик события event.ENTER_FRAME, с его помощью реализуется его движения и повороты, есть снаряд, который создается при клике мыши,есть функция которая выполняет расчет траектории снаряда, которая должна запускаться после клика мышки. Как мне записать эту функцию в обработчик event.ENTER_FRAME, чтобы она работала независимо от того нажата клавиша мыши или нет??? Пробовал поставить отдельное условие в виде булевой переменной, но не помогло.

bav 29.03.2011 12:06

Что-то вроде этого?
Код AS3:

function mouseClickHandler(event:MouseEvent):void {
    addEventListener(Event.ENTER_FRAME, bulletMove);
}
function bulletMove(event:Event):void {
    /* Здесь двигаем снаряд */
    ...
    /* По достижении снарядом конечной точки траектории
        удаляем слушателя */

    if (...) removeEventListener(Event.ENTER_FRAME, bulletMove);
}

Пожалуй, лучше, на мой взгляд, было бы реализовать логику движения снаряда в классе снаряда. И при создании экземпляра очередного снаряда, передавать в конструктор параметры, необходимые для расчета траектории. Снаряд может двигаться за счет собственного таймера.

P.S. Было бы лучше, если бы вы привели код.

CARVILLE 29.03.2011 13:53

Хотелось бы поподробней о классах узнать. Если я создам отдельный класс снаряда, то в нем тоже прописывать обработчик событий или нет? Не совсем ясна логика работы обработчиков(((. А если использовать таймер то только в Event.ENTER_FRAME или тоже в класс снаряда можно его засунуть?


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

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