In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

AS3 getClassesByPackage のテスト

http://pipes.yahoo.com/nacookan/as3_get_classes_by_package
のテスト。
Get Adobe Flash player
by nacookan 15 Mar 2010
    Embed
/**
 * Copyright nacookan ( http://wonderfl.net/user/nacookan )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/bbAl
 */

// http://pipes.yahoo.com/nacookan/as3_get_classes_by_package
// のテスト。
package {
    import flash.display.*;
    import flash.net.*;
    import flash.events.*;
    import flash.text.*;
    
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var package_name:String = 'fl.motion.easing';
            var url:URLRequest = new URLRequest(
                'http://pipes.yahooapis.com/pipes/pipe.run?' + [
                    '_id=531947c37fa1943fa3451fcab9fafdef',
                    '_render=rss',
                    'package=' + package_name
                ].join('&')
            );
            
            var loader:URLLoader = new URLLoader();
            loader.addEventListener(Event.COMPLETE, function(e:Event):void{
                var xml:XML = new XML(loader.data);
                var items:XMLList = xml.channel.item;
                for(var i:Number = 0; i < items.length(); i++){
                    addEasing(package_name, items[i].title.toString());
                }
            });
            loader.load(url);
        }
        
        private function addEasing(package_name:String, class_name:String):void{
            
            // ホントはここで、パッケージとクラスの名前をもとに
            // クラス定義を取ってきて、実際にアニメーションで
            // グラフか何かを書こうと思ったけど、実際やってみたら
            // コンパイラが認識したクラスだけswfに含まれるらしく、
            // コンパイル後に文字列をもとに好きなクラスを呼び出す
            // ことができなかった。だからとりあえず名前だけ
            // 出力しておく。
            
            var t:TextField = new TextField();
            t.autoSize = TextFieldAutoSize.LEFT;
            t.text = package_name + '.' + class_name;
            t.y = numChildren * 20;
            addChild(t);
        }
    }
}