PDA

Просмотр полной версии : Из Adobe Flash во Flash Builder


malkova_m
09.10.2013, 12:52
Здравствуйте!
Передо мной стоит задача создать приложение для мобильных устройств! У меня есть готовый Flash-проект, из которого и нужно сделать это приложение. РАНЕЕ С ЭТИМ НЕ СТАЛКИВАЛАСЬ!!! Пожалуйста, направьте меня в нужном направлении!!! Я смотрела пример создания простейшего FLEX/ACTION SCRIPT приложения для мобильных устройсв "HELLO, WORD". В моем проекте имеется не одна сцена - я застопорилась! Flash Builder 4.7 установила!!! Прошу - дайте направление моим действиям, пожалуйста!!!!

ShockWave512
10.10.2013, 01:18
А почему просто не собрать проект в Flash Pro, создать AIR проект для мобильных устройств, и в него перетащить свои сцены?

Попробуйте экспортировать проект в swf файл, и по символам разобрать его во флекс проекте (через Embed).
[Embed(source='scenes.swf', symbol='scene1')]
public var scene1:Class;

malkova_m
15.10.2013, 14:05
СПАСИБО ОГРОМНОЕ ЗА ОТВЕТ!!!!

С некоторыми усилиями наваяла следующий код (Во Flash Builder 4.7):

package
{
[SWF(width=2000,height=1025)];
import flash.display.DisplayObject;
import flash.display.Loader;
// import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.utils.ByteArray;
//import flash.events.MouseEvent;

public class poisk_aud extends Sprite
{

[Embed(source="MySwf.swf", mimeType="application/octet-stream")]
private static var EmbededSWF:Class;

public function poisk_aud()
{
//super();

// support autoOrients
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.SHOW_ALL;
const applicationDomain:ApplicationDomain = ApplicationDomain.currentDomain;
var cont:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null);
cont.allowCodeImport = true;
cont.allowLoadBytesCodeExecution = true;
var ba:ByteArray = new EmbededSWF();// as ByteArray;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
loader.loadBytes(ba,cont);
}

private function onLoadComplete(e:Event):void {
e.target.removeEventListener(Event.COMPLETE, onLoadComplete);
var loadedSwf:DisplayObject = e.target.content as DisplayObject;
addChild(loadedSwf);
}

}
}

При запуске проекта пишет:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at _fla::MainTimeline/frame1()

Подключаю, для проверки, другую ПРОСТЕЙШУЮ swf-ку - ошибки нет.

Что означает ошибка 1009 - я знаю!!!

Отдельно swf-ка работает отлично!!!!

СПАСИБО ЗА ОТВЕТ!!!!!!!!!

ShockWave512
15.10.2013, 14:10
а в чем вопрос ? :)

после добавления объекта, он стартует, но при этом не находит там у себя какого то объекта, флешка не рассчитана видимо на запуск снаружи, например

malkova_m
15.10.2013, 14:21
Проблема в моей swf-ке - это я поняла! Что значит она не рассчитана на запуск снаружи? Это как-нибудь лечится? Что мне нужно переделать? Моя swf-ка скомпилина во флеше как AS3. Как я уже предполагаю - мне нужно ее скомпилить как air-проект во флеше, так?

СПАСИБО!!!!

ShockWave512
15.10.2013, 14:47
тут без понятия, что там в коде FlashPro проекта я ж не знаю

навскидку, для начала бы убрал код из кадров, чтоб не было этого:
... ::MainTimeline/frame1()
ну и дебаггер флеш билдера может показать какая ссылка в загружженом объекте которая = null

malkova_m
15.10.2013, 15:44
Офигеть!!!! Дебаггер говорит, что все мои массивы, которые определены в подгружаемой swf - NULL!!!! Естественно - как он будет корректно работать!!!!! Почему отдельно запускаю эту swf - все OK, а так сказать, когда внедряю - ПОЛНАЯ ЧУШЬ!!!
И еще... Что значит убрать код из кадров - все вынести в отдельный .as что-ли? Пакет создавать?

СПАСИБО!!!! Кажется я, с Вашей помощью, на верном пути!!!! СПАСИБО!!!!

ShockWave512
15.10.2013, 15:54
очень разные вещи, запуск в собственной среде плеера, на корне stage, и отдельным классом как обычный DisplayObject
Вообще желательно разбить на куски, анимации, графику, звуки, панели и частями переносить в флеш билдер проект. Целиком весь проект сложно очень перенести. версии фб 4.6 есть визуальный редактор, можно все компоненты из флешПро расставить вручную.

malkova_m
15.10.2013, 16:15
СПАСИБО!!!! Я смогу там (в визуальном редакторе FB 4.6) разобраться со сценами? Буду работать дальше!!!! СПАСИБО Вам за помощь! Я была в просто в панике!!! А сейчас дело движется!!!!!

ShockWave512
15.10.2013, 16:32
со сценами вряд ли, с symbols да

malkova_m
15.10.2013, 16:34
ПОНЯТО!!!!!

Котяра
16.10.2013, 00:01
А при чём здесь, собственно, flex?