2013-04-20 2 views
0

Я хотел бы использовать FileReference.save() в 4 разных местах в флеш-игре. Все 4 метода одинаковы (копия &). Локально все 4 отлично работают, когда я помещаю swf в браузер, на самом деле, только один из них работает так, как ожидалось, а другие нет. В Chrome все 3 никогда не работали. В Safari они работают иногда, но недетерминированно. В чем причина? Есть идеи?FileReference.save() не работает стабильно в браузере as3

Кстати, я скомпилирован с Air 2.5 и Air 3.2 Desktop, я использую флэш CS6

private function onScreenShotButtonClicked(e:MouseEvent) 
    { 
     mScreenShotButton.removeEventListener(MouseEvent.CLICK, onScreenShotButtonClicked); 

     var finalBitmapData:BitmapData = new BitmapData(810, 520, true, 0x00000000); 
     var finalBitmap:Bitmap = new Bitmap(finalBitmapData, PixelSnapping.ALWAYS, false); 
     finalBitmapData.draw(mParent.root); 
     var finalData:ByteArray = new ByteArray(); 
     finalData = PNGSave.encode(finalBitmapData); 

     var tempFileReference:FileReference = new FileReference(); 
     tempFileReference.addEventListener(Event.COMPLETE, onSaveCompleted); 
     tempFileReference.addEventListener(Event.CANCEL, onSaveCancelled); 
     tempFileReference.save(finalData, "boombox.png"); 
    } 
+0

Не могли бы вы дать более подробное описание, чем «не работать»? Есть ли какая-то ошибка, она рушится, нет диалогового окна и т. Д.? – puggsoy

+0

добавить прослушивателей ошибок в tempFileReference – 2013-04-20 15:32:18

+0

@puggsoy: Спасибо за ваш ответ. Он не падает, но ничего не происходит, когда я нажимаю кнопку, как вы сказали, диалоговое окно не появляется. –

ответ

0

Общая проблема заключается в том, что ваш метод dont't имеют MouseEvent экземпляра параметров. Может быть, вы вызываете Filereference.save(), но у вас нет аргумента события в функции.

+0

Благодарим за отзыв. Параметр экземпляра MouseEvent в методе «private function onScreenShotButtonClicked (e: MouseEvent)». Что мне с этим делать? –

Смежные вопросы