Base64Encoder tkinjo forked:0favorite:0lines:42license : MIT License modified : 2009-05-01 14:34:55 Embed Tweet <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="465" height="465"> <mx:Script> <![CDATA[ import flash.events.ProgressEvent; import flash.net.FileReference; import mx.events.FlexEvent; import mx.utils.Base64Encoder; private var ファイルリファレンス:FileReference; /** * ファイルを Base64 エンコードストリングにエンコードします。 * * * wonderfl に任意の画像を埋め込むときなどにどうぞ。 * * * * Base64 エンコードストリングの使用例 * * forked from: 2009-3-14 wonderfl に任意の画像を埋め込む * http://wonderfl.kayac.com/code/d13a85899a700da06cfcce52aa87fbefd5708479 * * * * 読みやすいかと思って変数や関数名を日本語にしてみましたが…思ったよりコードが書きにくくなりますね…。 */ /** * */ private function 開くボタンを押した( イベント:FlexEvent ):void { ファイルリファレンス = new FileReference(); ファイルリファレンス.addEventListener( Event.SELECT, 選択した ); ファイルリファレンス.browse(); } /** * */ private function 選択した( イベント:Event ):void { /** * var ファイルリファレンス:FileReference = イベント.target as FileReference; * と書いてはいけない。 * FileReference はローカル変数で使えないらしく、読み込みに失敗することも。 */ //var ファイルリファレンス:FileReference = イベント.target as FileReference; ファイルリファレンス.addEventListener( ProgressEvent.PROGRESS, ダウンロード処理中 ); ファイルリファレンス.addEventListener( Event.COMPLETE, ダウンロードが完了 ); ファイルリファレンス.load(); } /** * */ private function ダウンロード処理中( イベント:ProgressEvent ):void { //メーセージテキスト.text = "読み込み中 : " + イベント.bytesLoaded / イベント.bytesTotal * 100; メーセージテキスト.text = "読み込み中 : " + イベント.bytesLoaded + "/" + イベント.bytesTotal; } /** * */ private function ダウンロードが完了( イベント:Event ):void { メーセージテキスト.text = "変換中"; var base64エンコーダー:Base64Encoder = new Base64Encoder(); base64エンコーダー.insertNewLines = false; base64エンコーダー.encodeBytes( ファイルリファレンス.data ); メーセージテキスト.text = "変換完了"; 結果.text = base64エンコーダー.toString(); } /** * */ private function クリップボードへコピーボタンを押した( イベント:FlexEvent ):void { System.setClipboard( 結果.text ); } ]]> </mx:Script> <mx:Text id="メーセージテキスト" text="”開く”ボタンから base64 形式に変換したいファイルを選択してください。" /> <mx:HBox> <mx:Button id="開くボタン" label="開く" buttonDown="開くボタンを押した( event )" /> <mx:Button id="クリップボードへコピーボタン" label="クリップボードへコピー" buttonDown="クリップボードへコピーボタンを押した( event )" /> </mx:HBox> <mx:TextArea id="結果" width="100%" height="100%" /> </mx:Application> Code Fullscreen Preview Fullscreen base64 filereference