Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Внешний SWF (http://www.flasher.ru/forum/showthread.php?t=205331)

dandelion 29.11.2013 14:45

Внешний SWF
 
Добрый день!

Существует проект на AS3 в него пытаюсь загрузить внешние SWF. Всё загружается хорошо, но почему то не выполняется код на таймлейне вложенных в эту SWF клипов.

LoadedSWF (MovieClip)
- Clip1 на кадре 1
- Clip2 на кадре 4

В первых кадрах Clip1 и Clip2 стоит trace('success');
И после загрузки и добавления к stage почему-то второй trace не срабатывает. (В общем как и любой другой код). Ошибок тоже нет. Если Clip2 передвинуть на первый кадр то trace в нём заработает.

Добавлять пробовал и так
Код AS3:

private function onCompleteHandler(loadEvent:Event):void
{
        var tempClip:MovieClip = loadEvent.currentTarget.content;
        addChild(tempClip)
 
}

И положить всё в один большой клип Main и уже его добавлять:

Код AS3:

private function onCompleteHandler(loadEvent:Event):void
        var tempClip:MovieClip = loadEvent.currentTarget.content;
 
        var ClassDefinition:Class = tempClip.loaderInfo.applicationDomain.getDefinition("Main") as Class;
        var _currentClip:MovieClip = new ClassDefinition();
        addChild(currentClip);
}

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

Проект в FalshDevelop использую Flex SDK 4.6 с AIR 3.9, под плеер 11.5

Спасибо!

Nucer 01.12.2013 11:58

Суть проблемы описана сумбурно, но думаю что решение в следующем:
1)
Код AS3:

private function onCompleteHandler(loadEvent:Event):void

здесь я так понимаю вы слушаете событие, приходящее от LoaderInfo, соотв. и loadEvent.currentTarget также будет являться экземпляром класса LoaderInfo. Обращаться к загруженному мувиклипу нужно как loadEvent.currentTarget.loader.content
2) В загружаемых клипах ВСЕГДА ставьте листенер на Event.ADDED_TO_STAGE и по этому событию - уже начинайте выполнение своего кода. В противном случае вы не можете предсказать момент, когда код в загружаемом мувике начнёт выполняться!

p.s. И вообще код на таймлайне, тем более вложенных мувиков - очень очень ненадёжный вариант. Лучше не ленитесь - делайте классы для мувиков, в которых нужен какой то код, сложнее чем stop() и gotoAndPlay()


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

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