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

LoadImage

ローカルファイルの読み込みって
やったこと無かったので試した。
Get Adobe Flash player
by umhr 03 Jan 2010
    Embed
/**
 * Copyright umhr ( http://wonderfl.net/user/umhr )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/2Vjn
 */

/*
ローカルファイルの読み込みって
やったこと無かったので試した。
*/
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFormat;
	
	[SWF(backgroundColor="0x777777",width=465,height=465)]
	public class Main extends Sprite
	{
		public function Main()
		{
			var tf:TextField = new TextField();
			tf.defaultTextFormat = new TextFormat("_sans",36,0xCCCCCC);
			tf.text = "Stage上をクリックするとダイアログが開きます。\n画像ファイル(PNG,JPG,GIF)を指定してください。";
			tf.wordWrap = true;
			tf.multiline = true;
			tf.width = stage.stageWidth;
			tf.autoSize = "left";
			tf.selectable = false;
			this.addChild(tf)
			stage.addEventListener(MouseEvent.CLICK,atClick);
		}
		private function atClick(event:MouseEvent):void{
			var loadFile:LoadFile = new LoadFile();
			loadFile.atComplete = atComplete;
			loadFile.Start();
		}
		private function atComplete(event:Event):void{
			this.addChild(event.target.content);
		}
	}
}

import flash.display.Loader;
import flash.events.Event;
import flash.net.FileReference;
import flash.system.LoaderContext;
class LoadFile{
	private var _fileReference:FileReference;
	public var atComplete:Function = function(event:Event):void{};
	/**
	 * 開始
	 * 
	 */	
	public function Start():void
	{
		if(_fileReference){
			return;
		}
		_fileReference = new FileReference();
		_fileReference.browse();
		_fileReference.addEventListener(Event.SELECT,atSelect);
	}
	/**
	 * ファイルの選択が完了すると動く
	 * @param event
	 * 
	 */	
	private function atSelect(event:Event):void{
		_fileReference.removeEventListener(Event.SELECT,atSelect);
		_fileReference.addEventListener(Event.COMPLETE,atFileComplete);
		_fileReference.load();
	}
	/**
	 * 選択したファイルを読み込み完了すると動く
	 * @param event
	 * 
	 */	
	private function atFileComplete(event:Event):void{
		_fileReference.removeEventListener(Event.COMPLETE,atFileComplete);
		var loader:Loader = new Loader();
		loader.loadBytes(event.target.data,new LoaderContext());
		loader.contentLoaderInfo.addEventListener(Event.COMPLETE,atBytesComplete);
	}
	/**
	 * 読み込んだファイルのバイトアレイを変換完了で動く
	 * @param event
	 * 
	 */	
	private function atBytesComplete(event:Event):void{
		event.target.removeEventListener(Event.COMPLETE,atBytesComplete);
		atComplete(event);
	}
}