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

[Progression4] LoadCommand系のcatchErrorの仕様について

Load系コマンドでは二度目以降の読み込みに対して
catchErrorが発生しない仕様(もしくは不具合)
Progressionフォーラムに投稿
http://forum.progression.jp/index.php?topic=315.0
Get Adobe Flash player
by clockmaker 22 Nov 2015
/**
 * Copyright clockmaker ( http://wonderfl.net/user/clockmaker )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/dzEf
 */

package
{
    // Load系コマンドでは二度目以降の読み込みに対して
    // catchErrorが発生しない仕様(もしくは不具合)

    // Progressionフォーラムに投稿
    // http://forum.progression.jp/index.php?topic=315.0
    
    public class Main extends Sprite
    {
        public static const URL:String = "hoge.jpg";
        
        public function Main()
        {
            var btn:PushButton = new PushButton(this, 10, 10, "LOAD START", _onClick);
            _label = new Text(this, 10, 100, "");
        }
        
        private var _label:Text;

        private function _onClick(e:Event):void
        {
            _label.text = "NOW LOADING";
            
            var list:SerialList = new SerialList();
            
            // エラーハンドリング
            list.catchError = function(target:Command, err:Error):void
            {
                // 二回目以降が呼ばれない
                _label.text = "CATCH ERROR : \n" + target.toString() + ", \n"+ err.toString();
                target.executeComplete();
            };
            
            // 読み込み処理
            list.addCommand(
                new LoadBitmapData(new URLRequest(URL)),
                function():void
                {
                    var res:Resource = getResourceById(URL);
                    
                    if(res && res.data)
                    {
                        // 読み込みが正常だったときの処理    
                    }
                    else
                    {
                        // 読み込みが行われなかったときの処理
                    }
                });
            list.execute();
        }
    }
    
    import com.bit101.components.PushButton;    import com.bit101.components.Text;        import flash.display.Sprite;    import flash.events.Event;    import flash.net.URLRequest;        import jp.progression.commands.Command;    import jp.progression.commands.lists.SerialList;    import jp.progression.commands.net.LoadBitmapData;    import jp.progression.data.Resource;    import jp.progression.data.getResourceById;
}