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

BlooDHounD 05.11.2009 16:19

жесть. а так не проще? :)
Код AS3:

var LoadedSWFClass:Class = ( loader.content as Object ).contructor as Class;
var newSWF:DisplayObject = new LoadedSWFClass() as DisplayObject;


Aldegran 06.11.2009 01:10

Не видит конструктор
делаю так
Код AS3:

private function configureAssets():void {
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            var request:URLRequest = new URLRequest("assets/obj.swf");
            loader.load(request);
        }
private function completeHandler(event:Event):void {
        var ob:Object=loader.content as Object ;
        content = ob.constructor as Class; //вот тут лажа. ob.constructor равен null :(
        }


bicubic_bublic 06.11.2009 01:13

у вас опечатка
ob.conStructor

Aldegran 06.11.2009 01:20

Спасибо... видать пора завязывать с ночным программированием :)
---
Не... вроде бы всё хорошо но когда в другом месте делаю
Код AS3:

var body:Class = (preloaderClass.loader.content as Object).constructor as Class; //сдесь я беру экземпляр уже загруженой swf
var disObj:DisplayObject  = new body() as DisplayObject; //тут создаю клон. Но этот клон почему то получается пустым тоесть width=0, height=0;
field.addChild(disObj);
// на сцене после этого ничего не видно
 
//если сделать так
var disObj:DisplayObject  = preloaderClass.loader.content as DisplayObject;
field.addChild(disObj);
//тогда всё работает но объект соотвецтвенно на сцене может быть только один

Блин ну как-то же это делают :wacko:

Alex Lexcuk 06.11.2009 10:53

а у меня во флеш цц3 после
Код AS3:

(preloaderClass.loader.content as Object).constructor

флеш цц3 вылетает с ошибкой, помойму стабильнее флеши клонировать через лоадер
http://www.murmadillo.tut.su/m/cat.swf
http://www.murmadillo.tut.su/m/many-dog.swf
http://www.murmadillo.tut.su/m/many-dog.rar

Aldegran 06.11.2009 13:54

preloaderClass это мой класс на для загрузки swf.
его свойство loader это обычный Loader который загружает флешину и контролирует процесс загрузки. чуть позже выложу.
---
P.S. за http://www.murmadillo.tut.su/m/many-dog.rar спасибо, буду пробовать

Felicast 06.11.2009 16:21

Цитата:

помойму стабильнее флеши клонировать через лоадер
по-моему, клонировать через лоадер - это стрелять из пушки по воробьям. зачем делать кучу не нужных операций. да еще и асинхронно.

bicubic_bublic 07.11.2009 12:16

Вложений: 1
Цитата:

Сообщение от Aldegran (Сообщение 863633)
Не... вроде бы всё хорошо но когда в другом месте делаю
Код AS3:

var body:Class = (preloaderClass.loader.content as Object).constructor as Class; //сдесь я беру экземпляр уже загруженой swf
var disObj:DisplayObject  = new body() as DisplayObject; //тут создаю клон. Но этот клон почему то получается пустым тоесть width=0, height=0;
field.addChild(disObj);
// на сцене после этого ничего не видно

Блин ну как-то же это делают :wacko:

Кажется, я понял с какой проблемой Вы столкнулись.
Проблема в том что класс загружаемой флешки (а точнее (preloaderClass.loader.content as Object).constructor - просто совпадает с MovieClip)
Вылечить это можно назначив загружаемой флешке какой-нибудь класс (не обязательно существующий)
Тогда все работает должным образом.
Чтобы не быть голословным приложу пример.

testLoad.swf - загружаемая флешка (класс _TestLoad)
testLoader.swf - загрузчик

Aldegran 10.11.2009 00:30

Огромная всем благодарность оба метода работают.
Осталось только выяснить какой более продуктивный


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

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