Flex 3 で簡単なアプリケーションを作成しました。コードは以下のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function browseFile():void
{
var fr:FileReference = new FileReference();
fr.addEventListener(Event.SELECT, onFileSelect);
fr.browse();
}
private function onFileSelect(evt:Event):void
{
trace(evt.currentTarget);
}
]]>
</mx:Script>
<mx:Button click="browseFile()" />
</mx:Application>
ケースはEvent.SELECT
決して解雇されないということです。しかし、fr
FileReference の参照をグローバルにする (つまり、関数の外部で宣言する) と、Event.SELECT
が起動されます。これは Flex 3 でのみ発生することに注意してください。Flex 4 では、どちらの場合も問題なく動作します。Actionscriptのガベージコレクションメカニズムと何か関係がありますか? 誰か説明してくれませんか?その理由を知りたいだけです。