![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2008
Сообщений: 36
|
Существует система из 4-х классов:
Document.as - главный класс приложения A.as - класс свфки A.swf B.as - класс свфки B.swf ExtLoader.as - класс, создающий композицию со стандартным классом Loader Итак главная флешка с помощью обычного лоадера грузить в себя A.swf, та в свою очередь с помощью ExtLoader класса грузит B.swf. Внимание, тут начинается самое интересное: Если при компиляции главной флешки включить в нее класс ExtLoader, то флешка A.swf загружает B.swf и не может привести ее к классу B. Если в главную флешку не компилировать класс ExtLoader - все нормально =\ Класс Document.as import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLRequest;
//import ru.isky.multiloader.DataLoader;
/**
* @author ign
*/
public class Document extends MovieClip {
private var loader : Loader;
public function Document() {
ExtLoader;
//trace(getDefinitionByName('ru.isky.test::A'));
//trace(getDefinitionByName('ru.isky.test::B'));
loader = new Loader();
loader.load(new URLRequest('A.swf'));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onItemLoaded);
}
private function onItemLoaded(event : Event) : void {
//trace(getDefinitionByName('ru.isky.test::A'));
loader.content['load']();
}
}
import flash.net.URLRequest;
import flash.events.EventDispatcher;
import flash.display.Loader;
import flash.events.Event;
/**
* @author ign
*/
public class ExtLoader extends EventDispatcher {
private var request : URLRequest;
public var loader : Loader;
public function ExtLoader(url : String) {
super();
request = new URLRequest(url);
}
public function load() : void {
loader = new Loader();
try {
loader.load(request);
//startTime = getTimer();
} catch(loader_error : Error) {
//error(loader_error);
}
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadFile);
}
private function onLoadFile(event : Event) : void {
dispatchEvent(new Event(Event.COMPLETE));
}
}
import flash.display.MovieClip;
import flash.events.Event;
/**
* @author ign
*/
public class A extends MovieClip {
private var exloader : ExtLoader;
public function A() {
trace("A CONSTRUCTOR");
}
public function load() : void {
trace("A.load( : " + arguments + ")");
exloader = new ExtLoader('B.swf');
exloader.addEventListener(Event.COMPLETE, loaderComplete);
exloader.load();
}
private function loaderComplete(e : Event) : void {
trace('is B:', exloader.loader.content is B);
}
}
import flash.display.MovieClip;
/**
* @author ign
*/
public class B extends MovieClip {
public function B() {
trace("B CONSTRUCTOR");
super();
}
}
h t t p ://slil.ru/25496050 |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
LoaderContext, ApplicationDomain
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 36
|
Благодарю.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|