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