ローカルの画像ファイルを読み込んでFlashに表示するサンプルです。
処理はローカルPCで行うのでファイルはアップロードされません。
ファイル読み込みのためにFileReferenceクラスを使います。
FileReferenceはバイナリデータで読み込むため、Loaderクラスを使って画像に変換します。
FileFilterで拡張子の指定ができます。
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; //import flash.events.SecurityErrorEvent; //import flash.events.IOErrorEvent; import flash.text.TextField; import flash.net.FileReference; import flash.net.FileFilter; import flash.display.Loader; [SWF(width="400", height="300")] public class Main extends Sprite { //画像表示用 private var layer_image:Bitmap = new Bitmap(); private var fr:FileReference = new FileReference(); public function Main():void { this.addChild(layer_image);//画像表示用 //読み込みボタン配置 var tf:TextField = new TextField(); this.addChild(tf); tf.width = 200; tf.height = 40; tf.x = 50; tf.y = 50; tf.text = "画像ファイル読み込み開始!!\nここをクリックしてね" tf.backgroundColor = 0x00AA00; tf.background = true; tf.selectable = false; tf.addEventListener(MouseEvent.CLICK, onClickButton ); } //ボタンクリック後の処理 private function onClickButton(e:MouseEvent):void { fr.addEventListener(Event.SELECT, onFileReference_Select); fr.addEventListener(Event.COMPLETE, onFileReference_Complete); //必要なら... //fr.addEventListener(ProgressEvent.PROGRESS, onFileReference_Progress); //fr.addEventListener(Event.CANCEL, onFileReference_Cancel); //fr.addEventListener(IOErrorEvent.IO_ERROR, onFileReference_IOError); //fr.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onFileReference_SecurityError); //フィルタ拡張子を指定 var ff:FileFilter = new FileFilter("Images(JPEG, GIF, PNG)", "*.jpg;*.gif;*.png"); //ファイル選択ダイアログ起動 fr.browse( [ ff ] ); } //FileReference 選択が終わった後の処理 private function onFileReference_Select(e:Event):void { fr.load();//ロード開始 } //FileReference ロード成功時の処理 private function onFileReference_Complete(e:Event):void { //PNG JPEG等のバイナリファイルをloaderクラスで読み込みます。(デコードしてくれます) var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader_Complete); //loader.contentLoaderInfo.(IOErrorEvent.IO_ERROR, onIOError); //必要なら... loader.loadBytes( fr.data ); } //Loader ロード成功時の処理 private function onLoader_Complete(e:Event):void { var loader:Loader = e.currentTarget.loader; //Loaderに読み込んだ画像でBitmapDataを作成。 var bmd:BitmapData = new BitmapData( loader.width, loader.height,true,0x000000); bmd.draw( loader ); loader.unload(); //スクリーンに表示 layer_image.bitmapData = bmd; } } }