アプリが初期化された直後にユーザーのファイルをロードしたいと思います。私はこのコードを持っています:
fll = new FileReference();
fll.browse([new FileFilter("Text *.txt", "*.txt")]);
ボタンを押すと正常に動作しますが、フレームのコード内に配置しただけでは動作しません。どうすればできますか?
アプリが初期化された直後にユーザーのファイルをロードしたいと思います。私はこのコードを持っています:
fll = new FileReference();
fll.browse([new FileFilter("Text *.txt", "*.txt")]);
ボタンを押すと正常に動作しますが、フレームのコード内に配置しただけでは動作しません。どうすればできますか?
この関数は、セキュリティ上の理由からユーザー インタラクション (マウス クリック、キー プレスなど) でのみ機能するため、通常のフレーム スクリプトに貼り付けると機能しません。
Try this code, hopefully this will work for you:
import flash.text.*;
import flash.net.FileReference;
var tf:TextField = new TextField();
tf.width = 350
tf.height = 350
tf.multiline=true;
tf.border = true
addChild(tf);
var fileReference:FileReference = new FileReference();
var fileFilter:FileFilter=new FileFilter("Images","*.txt");
fileReference.addEventListener(Event.SELECT, onSelectFile);
fileReference.addEventListener(Event.COMPLETE,onFileComplete);
bBrowse.addEventListener(MouseEvent.MOUSE_DOWN, browseFile);
function onFileComplete(event:Event):void
{
tf.htmlText = "opening: "+fileReference.name+"<br>"
var bytes:ByteArray=fileReference.data;
var newtext:String=fileReference.data.readMultiByte(fileReference.data.length,"gb2312");
//var newtext:String = fileReference.data.readUTFBytes(fileReference.data.length)
tf.appendText(newtext);
}
function browseFile(e:MouseEvent)
{
fileReference.browse([fileFilter]);
}
function onSelectFile(event:Event):void
{
fileReference.load();
}