Форум 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=141579)

leofit 29.06.2010 16:18

В кадрах писать, конечно, извращение, но в общем то любой несложный скрипт можно перетащить на кадр, фактически и синтаксис не изменится, и кстати в официальных книгах от адобе большинство примеров указано именно для кода в кадрах :)
И кстати без этого нереально диспатчить события в разные моменты роликов
А вообще конечно в кадрах должны быть только директивы stop, goToAndPlay/Stop, dispatchEvent

КорДум 29.06.2010 16:19

Ну и ну, а как же вы забыли addFrameScript?

leofit 29.06.2010 16:23

Ну она вроде недокументированная? Я чесно слово ни разу не пользовался

КорДум 29.06.2010 16:26

Недокументированная, но безумно полезная для того, кто хочет централизовать код и не раскидывать его по кадрам в FlashIDE :)
Плюс возможность убирать эти срипты из кадров.

leofit 29.06.2010 16:34

Полезная, даже мегаполезная =) Плохо только то, что при малейшем изменении мувика придется код править, номера фреймов перебивать, а если вместо одного мувика дизайнеры придумали другой... В общем надо её мегаосторожно юзать. Но за наводку спасибо!

КорДум 29.06.2010 16:36

Для облегчения такой участи существуют кадровые метки :)

leofit 29.06.2010 16:50

Да, но как узнать что ролик проиграл кадровую метку не используя код в кадрах? В цикле в EnterFrame (если роликов несколько)?

КорДум 29.06.2010 16:55

Как вариант - пользовательское событие, слушающее, когда переменная played станет true. Ну, а в кадре, в котором надо, эту переменную ставить в логическую единицу.

Добавлено через 31 секунду
Сейчас нас либо отругают, либо тему переназовут :D

leofit 29.06.2010 17:00

Не, я имел в виду что если не писать в кадрах, то как?
А так я обычно в кадре пишу что то вроде

Код AS3:

dispatchEvent(new Event('played'));

А в коде
Код AS3:

addEventListener("played", playedListener, true);

И автору топика это наверное и правда неинтересно ))

КорДум 29.06.2010 17:04

Я вас не понимаю. Мой вариант можно понимать двояко: addFrameScript - это присоединение кода к кадру. Но описывается оно в коде в файле as, а не ручками во FlashIDE. Если не хотите этого - пожалуйста, enterFrame подойдет.

Добавлено через 2 минуты
Код AS3:

mc.addFrameScript(10, onFrame);
 
private function onFrame():void {
        dispatchEvent(new Event('played'));
}
 
... //где-то там
addEventListener("played", playedListener, true);

Также, думаю, вложенная функция здесь не возбраняется, ибо
Код AS3:

mc.addFrameScript(10, null);

приведут кадр в девственно бескодовое состояние.


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

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