我在 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 中的垃圾收集机制有关?有人可以解释一下吗?我只是想知道原因。