▼ActionScript 2.0メモ▼
ネットから画像を読み込む


ネットから画像を読み込むFlashを作成する。



MovieClipLoaderクラスのリスナー
onLoadStart 読み込み開始時に発生
onLoadProgress 読み込み中定期的に発生
onLoadComplete 読み込み完了時に発生
onLoadError 読み込み失敗時に発生
onLoadInit 読み込んだMovieClipの先頭のフレームアクション実行時に発生


読み込み先制限
セキュリティのため、ムービークリップの読み込み先は同じドメインのみという制限がある。
それ以外のドメインにアクセスしたい場合は、Webサイト側でクロスドメインポリシーファイルを設置して、アクセスを許可する必要がある。


素材の準備
SWFと同じフォルダに素材を配置する。
Flash Player 7ではSWFJPEG、Flash Player 8以降ではSWFJPEGGIFPNGを利用できる。

sorami.jpg

heniheni.jpg


ソースコード
//ネットから画像を読み込む
class MovieClipLoaderEx {
    private var image:Array=null;//イメージ
    private var loadNum:Number=0;//ロード数

    //コンストラクタ
    function MovieClipLoaderEx(mc:MovieClip) {
        var name:Array=["sorami",    "heniheni"];
        var path:Array=["sorami.jpg","heniheni.jpg"];
        image=loadImages(mc,name,path,this);
    }
    
    //イメージ郡の読み込み
    function loadImages(mc:MovieClip,name:Array,path:Array,listener:Object):Array {
        var i:Number;
        var mcLoader:MovieClipLoader;
        var image:Array=new Array();

        //MovieClipローダー
        mcLoader=new MovieClipLoader();
        if (listener!=null) mcLoader.addListener(listener);

        //読み込み
        for (i=0;i<name.length;i++) {
            mc.createEmptyMovieClip(name[i],mc.getNextHighestDepth());
            image[i]=mc[name[i]];
            mcLoader.loadClip(path[i],mc[name[i]]);
        }
        return image;
    }

    //読み込み開始イベントの処理
    function onLoadStart(mc:MovieClip):Void{
        trace("読み込み開始:"+mc);
    }

    //読み込み中イベントの処理
    function onLoadProgress(mc:MovieClip,loadedBytes:Number,totalBytes:Number):Void{
        trace("読み込み中:"+mc+" "+loadedBytes+"/"+totalBytes);
    }
    
    //読み込み完了イベントの処理
    function onLoadComplete(mc:MovieClip):Void{
        trace("読み込み完了:"+mc);
        
        //全画像読み込み完了
        if (++loadNum==image.length) {
            image[0]._x=10;
            image[0]._y=10;
            image[1]._x=130;
            image[1]._y=40;
        }
    }

    //読み込みエラーの処理
    function onLoadError(mc:MovieClip):Void{
        trace("読み込みエラー:"+mc);
    }

    //フレームアクション開始イベントの処理
    function onLoadInit(mc:MovieClip):Void{
        trace("フレームアクション開始:"+mc);
    }

    //メイン
    static function main() {
        var app:MovieClipLoaderEx=new MovieClipLoaderEx(_root);
    }
}


コンパイル
mtasc -swf MovieClipLoaderEx.swf -main MovieClipLoaderEx.as -version 7 -header 240:240:30




−戻る−