Форум 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)
-   -   почему не срабатывает событие?! (http://www.flasher.ru/forum/showthread.php?t=95405)

Chas 05.05.2007 05:07

почему не срабатывает событие?!
 
создаю новую флешку.
в первом фрейме рисую квадрат, конвертирую его в мувик. захожу в мувик, в первом фрейме открываю Actions, пишу:
Код:

onLoad=function (){
trace ("test!");
}

и событие не срабатывает. хотя если там же написать то же самое на, например, onEnterFrame - то это событие срабатывает.
почему? это так задумано?

iNils 05.05.2007 05:31

onLoad срабатывает только, если он описан в классе.
Например:
1. Создать символ с идентификатором libTest
2. Внутри клипа написать
Код:

#initclip
function Test () {
}
Test.prototype = new MovieClip ();
Object.registerClass ("libTest", Test);
Test.prototype.onLoad = function () {
        trace ("test!");
};
#endinitclip

или
1. Создать символ с идентификатором libTest и именем класса Test
2. Создать сам класс
Код:

class Test () {
        function Test () {
        }
        function onLoad ():Void {
                trace ("test!");
        }
}

то событие сработает

Chas 05.05.2007 05:50

глупо как-то =(
почему тогда в _root onLoad срабатывает.
нет, ну это же глупость, onClipEvent (load) в дейсвиях символа срабатывает, а onLoad не срабатывает.
в догонку еще такой вопрос:
в расшареной библиотеке лежит клип. Он используется несколько раз в основном мувике, атачится с помощью attachMovie. Я хочу, чтобы в расшареной бибилиотеке не было никакого AS, в том числе в linkage не было идентификаторов классов. Т.е. класс для экземпляра на сцене можно указать только во время атача. я так понимаю, нужно что-то типа:
Код:

cur=attachMovie ("sequence",
        "model"+getNextHighestDepth(),
        getNextHighestDepth());
Object.registerClass (cur, game.CharacterAnimationSequence);

а код в ключевых словах #initclip/#endinitclip выполняется после загрузки первого фрейма или всего мувика?


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

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