Вторник, 19 Ноября 2024, 08:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
из FLASH в FlashDevelop
andarkyДата: Четверг, 07 Июня 2012, 15:50 | Сообщение # 1
старожил
Сейчас нет на сайте
Я на Flash CS6 создал анимацию для появления GUI и разного другого рода...
скомпилировал в SWF.

Есть проект на FlashDevelop, который не мною написан,
но туда нужно встроить мою анимацию.

Я пишу в код FlashDevelop-проекта для загрузки моего SWFа:
Code

.
.  
var loader:Loader = new Loader()
var req = new URLRequest("wndw_as3.swf");
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,compl)
    loader.load(req);
addChild(loader);

function compl (e:Event) {
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,compl);
var mco=loader.content;
var _content:MovieClip = loader.content as MovieClip;
var mc_copy:MovieClip = newCopy(_content);
   mc_copy.x=100
   mc_copy.gotoAndStop(1)
addChild(mc_copy)   
}
function newCopy (mc:MovieClip):MovieClip {
   var classRef:Class = mc.constructor;
   var copy = new classRef();
return copy;
.
.
}


ничего не выходит,
хотя в FlashIDE тот же код работает, куда бы я его не написал,
хоть с главного таймлайна, хот в MovieClip...

ДА! ещё мне после загрузки нужно управлять из FlashDevelop объектами таймлана моего SWF.
Все активные объекты имеют имена

Добавлено (06.06.2012, 17:40)
---------------------------------------------
я сам откопал решение!
Вот кусок кода:

Code

private var mainTimeline:MovieClip;
    
       [Embed(source = "wndw_as3.swf", symbol = "okno")]
       private var ramka: Class;
        
       private var oknoa: MovieClip;
    
   public function SimplePreloader()
   {
    init();
   }
   
   private function init():void
   {
    addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
     
    this.oknoa = new this.ramka() as MovieClip;
    this.addChild(this.oknoa);
   }


все подгружается...
НО!
опять не то...

у меня ведь там объекты с внутренним функционалом,
кнопочки всякие у мувиклипы реагирующие на события.
а все проигрывается не взирая на скрипты в кадрах таймлайна подгружаемого SWF.
Хотя у меня в начале в первом кадре stop()

Добавлено (07.06.2012, 15:50)
---------------------------------------------
по-моему задача элементарна,
почему никто помочь не хочет?

я обгуглился уже, попадаю на одни и те же примеры...



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
noTformaTДата: Четверг, 07 Июня 2012, 17:13 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
Quote (andarky)
у меня ведь там объекты с внутренним функционалом,
кнопочки всякие у мувиклипы реагирующие на события.
а все проигрывается не взирая на скрипты в кадрах таймлайна подгружаемого SWF.
Хотя у меня в начале в первом кадре stop()

это как? ты загрузил свф файл, добавил его на сцену, а он проигрывается?


@noTformaT
andarkyДата: Пятница, 08 Июня 2012, 15:44 | Сообщение # 3
старожил
Сейчас нет на сайте
noTformaT,
второй вариант - именно так.
Но потом я еще выяснил, что он на стадии компиляции эмбедит его в себя.
Анимация заLOOPлено крутится не взирая на стопы в кадрах.

Первый вариант сыпал ошибки, но потом поковыряв код я избавился от ошибок,
но вообще перестало что-то показывать.
Я даже в том файле (который подгружается) в 1й кадр тупо вставил квадрат.
Но я ничего не вижу...

Добавлено (08.06.2012, 12:35)
---------------------------------------------
я переписал код::

Code
private function onLoadModulComplete(e:Event):void {
  trace('загрузили');
  var ooo: MovieClip = addChild(e.target.content) as MovieClip;
}
private function loadme(url:String):void {
  var moduleloader :Loader = new Loader();
  moduleloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadModulComplete);
  moduleloader.load(new URLRequest(url));
}


Так - грузит все как положено, скрипты внутри подгруженного мувика работают как положено..
НО!
кака мне теперь управлять этим мувиком извне? Как к нему обращаться?

Вот это выдает ошибки:
Code
    public function unityInitComplete():void
   {
    somePreloaderBar.startFadeOut();
          
    var success:Boolean = unityContentLoader.unityContent.sendMessage("bz","SetResponder",{responder:this});
    if(success){
     trace("connect UNITY");
    }
   loadme ("wndw_as3.swf");
   }

   public var unityObject:Object;
   public function unityHelloFunction(obj:Object):void
   {
    trace("Unity peredaet: "+obj);
    
      unityObject = obj;
      MovieClip(stage).ooo.x=30;
   }    

как ??

Добавлено (08.06.2012, 15:44)
---------------------------------------------
ВСЁ заработало!!!
у меня получилось!

спасибо ВСЕМ за помощь smile



Моя страничка по дизайну
GameDev//Design//3D
Ютубчик
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг