FileReferenceList不会触发事件

时间:2014-08-17 19:46:37

标签: actionscript-3 flex events air filereferencelist

SELECT和CANCEL事件没有被触发,我是在一个新项目中完成的,以确保问题不是来自我代码的另一部分。

"事件被解雇"当我点击"打开"时,从未出现在输出中用FileReferenceList.Browsing对话框选择文件后。我也尝试过FileReference但它没有用。其他元素的其他事件起作用(如addedToStage,Click,touch等)。我在FlashDevelop上使用Air AS3 Projector项目,使用Air 14和Flex 4.6.0。

这是Main.as:

public class Main extends Sprite 
{
    public function Main():void 
    {
        var asd:FileReferenceList = new FileReferenceList();
        asd.addEventListener(Event.SELECT, traceResult);
        asd.browse();

        trace("FileReferenceList is browsing...");
    }

    public function traceResult(e:Event):void
    {
        trace("Event Fired");
    }
}

application.mxml:

<?xml version="1.0" encoding="utf-8" ?> 
<application xmlns="http://ns.adobe.com/air/application/14.0">

<id>FileReferenceListTest</id> 
<versionNumber>1.0</versionNumber> 
<filename>FileReferenceListTest</filename> 

<name>FileReferenceListTest</name> 
<description></description> 
<copyright></copyright> 

<initialWindow> 
    <title>FileReferenceListTest</title> 
    <content>FileReferenceListTest.swf</content> 
    <systemChrome>standard</systemChrome> 
    <transparent>false</transparent> 
    <visible>true</visible> 
    <minimizable>true</minimizable> 
    <maximizable>true</maximizable> 
    <resizable>true</resizable> 
</initialWindow> 

</application>

在SetupSDK.bat中,我使用的SDK是: 的FlashDevelop \ APPS \ flexairsdk \ 4.6.0 + 14.0.0

功能版本是:WIN 14,0,0,176(在另一个问题中如此问题)。我是flash的新手,所以如果你的答案包含编译器更改或不容易找到(或检查)的东西,请准确地说明如何做。谢谢你的时间:)。

2 个答案:

答案 0 :(得分:0)

您的上述代码正在运行。请检查其他内容。我还有另外一个问题

答案 1 :(得分:0)

仔细阅读actionScript®3.0参考资料后,我看到了这一点:

  

注意:在Adobe AIR中,File类,它扩展了FileReference   class,提供更多功能并且具有更少的安全限制   比FileReference类。

所以这是好的代码:

public class Main extends Sprite 
{
    public function Main():void 
    {
        var f:File = new File();
        f.addEventListener("selectMultiple", traceResult);
        f.browseForOpenMultiple("Browse...");

        trace("FileReferenceList is browsing...");
    }

    public function traceResult(e:Event):void
    {
        trace("Event Fired");
    }
}