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

iforev 06.02.2008 21:00

Вложенность мувиков в приаттаченном клипе подгруженной флешки
 
Есть флешка mainElementsPackage.swf с несколькими клипами в библиотеке, 1 из клипов представляет собой 2 вложенных друг в друга мувика с именами 'aaa' и 'bbb' (вложены на сцене, а не программно добавлены), он ассоциирован с классом Sym3. Загружаем mainElementsPackage.swf в основную флешку, по окончании загрузки в основной флешке говорим

Код:

var MI = new Sym3();
addChild(MI);

на что получам ошибку:

Код:

ReferenceError: Error #1056: Cannot create property aaa on Sym3.
        at flash.display::Sprite/flash.display:Sprite::constructChildren()
        at flash.display::Sprite$iinit()
        at flash.display::MovieClip$iinit()
        at Sym3$iinit()
        at MenuItem$iinit()
        at rootMEPClass/::frame1()
ReferenceError: Error #1056: Cannot create property aaa on Sym3.
        at flash.display::Sprite/flash.display:Sprite::constructChildren()
        at flash.display::Sprite$iinit()
        at flash.display::MovieClip$iinit()
        at Sym3$iinit()
        at rootClass/onMEPLoaded()

То же самое происходит, если в клипе не мувики, а текстовое поле. При этом я заметил, что если поместить в клип графику или создать текстовое поле программно, то никакой ошибки при выполнении главной флешки не возникает. Собственно, вопрос: как заставить работать такой "сложный" клип, приаттаченный из подгруженной флешки? У меня в этих клипах может содержаться сложная графика и собирать всё программно из частей очень не хотелось бы

etc 06.02.2008 23:03

Если бы ваши флешки лежали в разных папках, вы бы вообще основную флешку скомпилировать не смогли бы. А так у вас на самом деле класс Sym3 в основной и подгружаемой флешках отличаются. В основной не объявлены aaa и bbb (их объявляет компилятор CS3). После подгрузки интерпретатору сносит башню.
Используйте getDefinition вместо прямого создания класса Sym3 таким образом, чтобы в основной флешке его не было.
И ещё отключите автоматическое объявление полей-ссылок на клипы.

iforev 07.02.2008 01:55

Большое Вам человеческое спасибо, работает.
А что за поля-ссылки на клипы, просветите или скажите, где почитать?

etc 07.02.2008 02:02

Поля-ссылки? Это обычные публичные свойства, которые ссылаются на клип и имеют такое же имя, как и клип, на который оно ссылаются. По факту, зло.
Отключается в настройках AS3 для проекта. Но тогда потребуется самому писать все эти public var aaa:MovieClip, т.к. CS3 не позволяет отключить constructChildren совсем, что есть плохо.


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

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