FileReferenceList не запускает события

События SELECT и CANCEL не запускаются, я сделал это в новом проекте, чтобы убедиться, что проблема не возникла из другой части моего кода.

"Event Fired" никогда не появляется в выходных данных, когда я нажимаю "Open" после выбора файлов с помощью FileReferenceList.Browsing Dialog. Я также попробовал FileReference, и он не работал. Другие события для других элементов работают (например, AddedToStage, Click, Touch и т. Д.). Я использую проект Air AS3 Projector на FlashDevelop с 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 (как задано в другом вопросе, подобном этому). Я новичок в флеш-памяти, поэтому, если ваши ответы содержат изменения в компиляторе или что-то нелегкое найти (или проверить), будьте точны, как это сделать. Спасибо за ваше время:).

2 ответа

Решение

Внимательно прочитав Справочник по ActionScript® 3.0, я увидел следующее:

Примечание. В Adobe AIR класс File, который расширяет класс FileReference, предоставляет больше возможностей и имеет меньше ограничений безопасности, чем класс 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");
    }
}

Ваш код выше работает. Пожалуйста, проверьте другие вещи. У меня есть другая проблема

Другие вопросы по тегам