
Код AS3:
package { //Main.as
import flash.*//и все такое
public class Main extends Movie Clip {
var C1:MovieClip = new Class1;
var C2:MovieClip = new Class2;
public function Main()
{
C1.addEventListener( CustomEvent.COMPLETE, playHandler );
C2.addEventListener( CustomEvent.COMPLETE, playHandler );
C1.play()
}
public function playHandler(e:CustomEvent):void {
switch (e.target) {
case C1:
/*
if (e.label=='somelabel666') { */
C1.stop();
C2.play();
// }
break;
}
}
//Везде Main видит оба класса и свойства и методы базового класса MovieClip
}
}
package { //CustomEvent.as
public class CustomEvent extends Event {
public static var PLAY:String = 'PLAY';
public static var COMPLETE:String = 'COMPLETE';
public var label:String='default'
public function CustomMovie (type:String, label:String='') {
super(type,true);
this.label = label;
}
}
}
package { //CustomMovie.as
import flash.*
public class CustomMovie extends MovieClip {
public function CustomMovie () {
}
protected function complete(label:String=''):void {
this.dispatchEvent( new CustomEvent(CustomEvent.COMPLETE, label ) );
}
}
}
package { //Class1.as
import flash.*
public class Class1 extends CustomMovie {
public function Class1 () {
addEventListener( Event.ENTER_FRAME, frameHandler );
}
public function frameHandler(e:Event):void {
if(this.currenFrame == 666)
{
removeEventListener( Event.ENTER_FRAME, frameHandler );
complete('somelable666');
}
}
}
}
package { // Class2.as
import flash.events.Event;
public class Class2 extends CustomMovie
{
public function Class2 () {}
public function Panic()
{
}
}
}