Как загрузить файл пользователя во Flash? - PullRequest
0 голосов
/ 30 сентября 2011

Я хочу загрузить файл пользователя сразу после инициализации приложения.У меня есть этот код:

fll = new FileReference();          
fll.browse([new FileFilter("Text *.txt", "*.txt")]);

Он отлично работает, когда нажимается какая-то кнопка, но когда я просто помещаю ее в код фрейма, он не работает.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Эта функция работает только при взаимодействии с пользователем (щелчок мыши, нажатие клавиши и т. Д.) Из соображений безопасности, поэтому она не будет работать при вставке в обычный сценарий кадра.

0 голосов
/ 30 сентября 2011
   Try this code, hopefully this will work for you:       

   import flash.text.*;
   import flash.net.FileReference;

   var tf:TextField = new TextField();
   tf.width = 350
   tf.height = 350
   tf.multiline=true;
   tf.border = true
   addChild(tf);

   var fileReference:FileReference = new FileReference();
   var fileFilter:FileFilter=new FileFilter("Images","*.txt");
   fileReference.addEventListener(Event.SELECT, onSelectFile);
   fileReference.addEventListener(Event.COMPLETE,onFileComplete);
   bBrowse.addEventListener(MouseEvent.MOUSE_DOWN, browseFile);

   function onFileComplete(event:Event):void 
   {
      tf.htmlText = "opening: "+fileReference.name+"<br>"
      var bytes:ByteArray=fileReference.data;
      var newtext:String=fileReference.data.readMultiByte(fileReference.data.length,"gb2312");
      //var newtext:String = fileReference.data.readUTFBytes(fileReference.data.length)
      tf.appendText(newtext);
    }

    function browseFile(e:MouseEvent) 
    {
        fileReference.browse([fileFilter]);
    }

    function onSelectFile(event:Event):void 
    {
         fileReference.load();
    }
...