
Код AS3:
package {
import flash.display.Sprite;
import flash.events.Event;
/**
* @author SlavaRa
*/
public class Main extends Sprite {
public function Main():void {
super();
if (super.stage) {
this.onSuperAddedToStage();
} else {
super.addEventListener(Event.ADDED_TO_STAGE, this.onSuperAddedToStage);
}
}
private function onSuperAddedToStage(e:Event = null):void {
super.removeEventListener(Event.ADDED_TO_STAGE, this.onSuperAddedToStage);
// entry point
var a:A = new A();
var b:B = new B(a);
a.setArray([1, 2, 3, 4]);
}
}
}
import flash.events.Event;
import flash.events.EventDispatcher;
class A extends EventDispatcher {
public function A() {
super();
}
private var _array:Array;
public function setArray(array:Array):void {
this._array = array;
super.dispatchEvent(new Event(Event.COMPLETE));
}
public function get array():Array {
return _array;
}
}
class B {
public function B(a:A) {
super();
this._a = a;
this._a.addEventListener(Event.COMPLETE, onAComplete);
}
private var _a:A;
private function onAComplete(event:Event):void {
trace("array:", this._a.array); //array: 1,2,3,4
}
}
у меня все работает