Человеки, прошу - помогайте, ...потому как я без вариантов (((
Как я уже и рассказывал - смысл моей реализации в том что пытаюсь загрузить из одной "классифицированной" флешки - другую "классифицированную" флешку и работать с ней как с классом.
Localconnection (видимо) не подходит, потому что там 40Kb за раз в одну сторону, ...а передо мной, в дальнейшем, задача передавать в другую флеху-класс объемы и по более... Кому лень качать demo файл в первом посте топика, покажу структуру на картинке:
[IMG]http://img265.**************/img265/9393/indexswf.png[/IMG]
Загрузчик в INDEX_SWF:
Код AS3:
package com {
import flash.display.MovieClip;
import flash.utils.ByteArray;
import flash.events.*;
import flash.display.Loader;
import flash.system.LoaderContext;
import flash.system.ApplicationDomain;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
import flash.net.*;
public class index extends MovieClip {
private var urlLoader : URLLoader;
private var loader : Loader;
private var importClass : *;
public function index(){
trace('конструктор', this);
this.urlLoader = new URLLoader();
this.urlLoader.dataFormat=URLLoaderDataFormat.BINARY;
this.urlLoader.addEventListener(Event.COMPLETE, completeHandler);
try {this.urlLoader.load(new URLRequest('loadthis.swf'));}
catch (error:Error){trace("Unable to load requested document.");}
} // index
private function completeHandler(e:Event):void{
trace(this, '> loaded ..!!');
this.loader = new Loader();
with(this.loader){
contentLoaderInfo.addEventListener(Event.COMPLETE, builderHandler);
loadBytes(e.target.data, new LoaderContext(false, ApplicationDomain.currentDomain));
} // with(loader)
} // completeHandler
private function builderHandler(e:Event):void{
var appDomain:ApplicationDomain = e.target.content.loaderInfo.applicationDomain;
var mclass: Class = appDomain.getDefinition(getQualifiedClassName(e.target.content)) as Class;
if (mclass){
this.importClass = new mclass();
this.addChild(this.importClass);
} // mclass
} // builderHandler
} // class
} // package
Код кнопки в LOADTHIS_SWF:
Код AS3:
package com {
import flash.display.MovieClip;
import flash.events.*;
import flash.filters.*;
public class button extends MovieClip{
public function button(){
trace('конструктор', this);
// при наведении на "себя" - мажем по краям "себя" glow эффект
this.addEventListener(MouseEvent.ROLL_OVER, ROver); // мышку навели
this.addEventListener(MouseEvent.ROLL_OUT, ROut); // мышку увели
} // constructor code
private function ROver(e:MouseEvent):void{
var myGlow:GlowFilter = new GlowFilter();
myGlow.color=0xFFFFFF;
this.filters = [myGlow];
trace(this, '> over');
} // ROver
private function ROut(e:MouseEvent):void{
var myGlow:GlowFilter = new GlowFilter();
myGlow.color=0x336600;
this.filters = [myGlow];
trace(this, '> out');
} // ROver
}
}
Как ни старайся - после загрузки проекта в index, в загруженной .swf`ке никакой реакции на мышиные события, конструктор класса button срабатывает только один раз, в загрузчике класса index:
Код AS3:
with(this.loader){
contentLoaderInfo.addEventListener(Event.COMPLETE, builderHandler);
loadBytes(e.target.data, new LoaderContext(false, ApplicationDomain.currentDomain)); // вроде тут
} // while
А при создании экземпляра класса загруженного клипа - конструктором кнопки и не пахнет (((
Что делать? У меня паника...
Добавлено через 59 часов 32 минуты
Люди, есть тут кто живой?