Я пытаюсь получить экземпляр класса для загрузки внешнего SWF и показать его.Пока у меня есть следующее: 1) я написал класс, который использует класс Loader для загрузки внешнего SWF-файла «loadExtSWF».2) У меня есть флаг с именем «MainSWF.fla», который использует класс документа «MainSWF.as».3) У меня есть файл MainSWF.as, который запускает «loadExtSWF» и вызывает loadExtSWF.startLoad для загрузки SWF.
Это почти работает.Экземпляр loadExtSWF загружает внешний SWF-файл, но SWF-файл не отображается.
Если я заменю класс документа fla на loadExtSWF (в нем есть пустой конструктор) вместо MainSWF, и запустим loadExtSWF.startLoad, тогдавнешний SWF загружается и отображается.
Кажется, что способ, которым я первоначально делаю это, загружает SWF на неправильную стадию (?).
Есть идеи?Спасибо за помощь.
Пока, RaamEE
PS
Если вы замените класс документа для test_tsscreen с test_tsscreen.as на TSScreen.as и удалите комментарий внутриКонструктор test_tsscreen, SWF будет загружен.
Мой код:
файл test_as3.swf
внешний файл as3 swf.
файл test_tsscreen.fla
флаг fla пуст и ссылается на test_tsscreen.as в качестве класса документа.
файл test_tsscreen.as
package {
import flash.display.MovieClip;
import TSScreen;
public class test_tsscreen extends MovieClip{
var tsScreen1;
public function test_tsscreen(){
// var tsScreen1:TSScreen = new TSScreen(10,10,100,100,0.5,0);
var tsScreen1:TSScreen = new TSScreen();
tsScreen1.startLoad(this.stage);
}
}
}
файл TSScreen.as
package {
import flash.display.MovieClip;
import flash.display.*;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
import flash.display.Loader;
import flash.events.Event;
import flash.events.ProgressEvent;
public class TSScreen extends MovieClip implements ITSScreenable{
public function TSScreen():void{
// startLoad(this); //Look important comment in above text
}
function startLoad(_this:Stage) {
var mLoader:Loader = new Loader();
var mRequest:URLRequest = new URLRequest("test_as3.swf");
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
_this.parent.addChild(mLoader);
mLoader.load(mRequest);
trace(this.name);
trace(_this.name);
}
function onCompleteHandler(loadEvent:Event) {
addChild(loadEvent.currentTarget.content);
}
function onProgressHandler(mProgress:ProgressEvent) {
var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal;
trace(percent);
}
}
}