is class1 extending a class2 ?

by pleclech
♥0 | Line 37 | Modified 2011-02-21 06:12:41 | MIT License
play

ActionScript3 source code

/**
 * Copyright pleclech ( http://wonderfl.net/user/pleclech )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/h90R
 */

package {
    import flash.utils.getQualifiedSuperclassName;
    import flash.utils.getQualifiedClassName;
    import flash.text.TextField;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.utils.describeType;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        
        public function FlashTest() {
            // write as3 code here..
            if (stage) _init()
            else addEventListener(Event.ADDED_TO_STAGE, _init)
        }
        private var tf:TextField=new TextField()
        private function trace(...args):void{
            tf.appendText(args.join(", ")+"\n")
        }
        private function _init(e:Event=null):void {
            removeEventListener(Event.ADDED_TO_STAGE, _init)
            addChild(tf)
            tf.autoSize="left"
            tf.background=true
            test()
       }
       private function isABaseOf(class1:Class, class2:Class):Boolean{
           var xl:XMLList=describeType(class2)..extendsClass
           trace(class2 + "extends " + xl)
           trace("")
           var qn:String=getQualifiedClassName(class1)
           return xl.(@type==qn).length()!=0           
       }

       private function test():void{
           var ibo:Boolean=isABaseOf(Event, MouseEvent)
           trace("Event is a base class of MouseEvent ", ibo)
       }

    }
}