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

Aldegran 04.11.2009 04:15

конвертирование графики в код
 
Господа хорошие подскажите пожалуйста есть ли какие нибудь средства для конвертирования нарисованой во флеш редакторе векторной графики в AS код (который делает тоже самое тоесть рисует)?
Ну или на крайняк конвертор SVG в тот же AS?

P.S. Честно пользовался поиском, не нашел :confused:

VVall 04.11.2009 05:05

http://www.flasher.ru/forum/showthread.php?t=132010

Aldegran 04.11.2009 15:40

Это не совсем то что я имел с виду.
Мне на выходе надо получить AS код в котором будет программно рисоваться графика.

VVall 04.11.2009 16:21

Есть сомнения, что вам действительно надо именно это. Расскажите, зачем вам это понадобилось, вероятно есть другие решения.

Aldegran 04.11.2009 17:13

Есть проэктик вкотором надо налету подгружать векторную графику. как в игре.
Пришол запрос с сервера что по таким-то координатам появился такой-то объект.
И тогда выполняется кусок кодпа который отвечает за его отрисовку.
Почему не эмбедом? Потому что дохрена этих графических елементов и они не нужны все всем.
Почему не лоадером. Потому что клонировать векторную графику как я тут почитал геморно. Кроме того часто мне надо управлять обектом который ещё не загрузилсчя до конца с сервера.
---
Может конечно я микроскопом гвозди забиваю но пока только так придумал.

Felicast 04.11.2009 21:42

Цитата:

Потому что клонировать векторную графику как я тут почитал геморно
ну не знаю, по-моему ваш способ на много геморройней

Aldegran 05.11.2009 01:48

я на форуме находил как клонировать ембеженые SWF, а вот как клонировать тот swf который загружен лоадером?

bicubic_bublic 05.11.2009 02:42

Цитата:

Сообщение от Aldegran (Сообщение 863386)
я на форуме находил как клонировать ембеженые SWF, а вот как клонировать тот swf который загружен лоадером?

тоже было..
Код AS3:

//loader:Loader
//после загрузки
var LoadedSWFClass:Class = loader.content.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(loader.content)) as Class;
var newSWF:DisplayObject = DisplayObject(new LoadedSWFClass);


Felicast 05.11.2009 10:33

думаю
Код AS3:

var newSWF:DisplayObject = new LoadedSWFClass() as DisplayObject;

получше будет

Aldegran 05.11.2009 15:10

спасибо. Надо будет попробовать.

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, время: 16:12.

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