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

iNils 12.11.2005 21:35

Последовательность инициализации клипов
 
Вложений: 1
Смотрим аттач.
Создаем два класса Сlass1 и Class2 и два мувиклипа (экземляров этих классов).
Помещаем мувиклип класса Class1 в мувиклип класса Class2.
Но, Class2 инициализируется раньше Class1. Поэтому внутри #initclip обратиться к методом экземляра класса Class1 не получается (это при том что порядок в #initclip для Class1 стоит 1, а для Class2 - 2).

Можно приаттачить из библиотеки клип первого класса
this.attachMovie ("lib1", "mc", 0); (в примере закоментирован), тогда все работает.

Попытка вызвать Class1.apply (this.mc); (в примере закоментирован) вызывает только функцию описывающую Class1. Вызов внутри нее метода init() не работает.

Вопрос. Как заставить экземляр класса Class1 инициализироваться первым?

Nirth 13.11.2005 02:36

сейчас нет возможности протестить. но вот выходы.

1)
поставить галочку на import in first frame

2) если у тебя будет прелоадер, то следовать советам Колина Мука насчет АС2 классов.
в первый кадр вставляешь прелоадер, в пятый кадр за пределами сцены вставляешь свои классы, после чего уже на десятом кадре начинаешь их юзать(можно обойтись в три кадра, но кто знает какие могут быть глюки)

3) попробуй юзать order в #initclip,
Код:

#initclip 1
//your class1

лично я юзаю второй способ. ибо юзаю АС2 и инитклипом пользовался лиш трижды, и ито в туторах

iNils 13.11.2005 02:42

1-2. Это точно тут не причем
3. Стоит order.

Все сделано на as1. Вариант на as2 не подходит. Но решение просто должно быть. Раз c attachMovie все работает, значит должна быть возможность вызвать и вручную. Мне так кажется.

А зипе есть наглядный пример.

iNils 13.11.2005 05:02

Вроде нашел решение.
Надо внутри _global.Class2 = function () {
написать
this.mc.__proto__ = new Class1 ();

Спасибо Nirth, за попытку помочь разобраться.


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

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