2012-03-26 1 views
1

У меня возникла проблема со старым флэш-приложением. Через всю жизнь приложения он открывает и закрывает несколько NetConnections. Это хорошо работает до последнего соединение не должно быть создано, как только я называю новый NetConnection() браузер вылетает со следующей ошибкой в ​​журнале:Вспышка Flash Player при создании NetConnection

Faulting application name: iexplore.exe, version: 9.0.8112.16421, time stamp: 0x4d76255d 
Faulting module name: Flash11g.ocx, version: 11.1.102.63, time stamp: 0x4f4c3a2f 
Exception code: 0xc0000005 
Fault offset: 0x0022e4fb 
Faulting process id: 0x378 
Faulting application start time: 0x01cd0b5c61ea285f 
Faulting application path: C:\Program Files\Internet Explorer\iexplore.exe 
Faulting module path: C:\Windows\system32\Macromed\Flash\Flash11g.ocx 
Report Id: b48eea61-774f-11e1-8a5a-0019d19a2ae1 

Приложение работало нормально до и она работает нормально, когда я воспроизведите его с помощью проектора Flash Player. Есть идеи???

ответ

0

Я нашел там проблему с инициализацией NetConnections прямо перед NetStreams. Всегда инициализируйте свои NetConnections заранее и в отдельной функции из NetStream.

Вот пример, в котором, если я поставил весь этот код в функции инициализации(), Flash Player будет врезаться, но инициализация NetConnection в конструкторе моего класса, все играет прекрасно:

public function VideoView(url:String) 
    { 
     this.url = url; 

     netConnection = new NetConnection(); 
     netConnection.connect(null); 

     video = new Video(960, 480); 
     video.smoothing = true; 
     this.addChild(video); 
    } 

    public function init():NetStream { 
     netStream = new NetStream(netConnection); 
     video.attachNetStream(netStream); 
     return netStream; 
    } 

    public function play():void { 
     netStream.play(url); 
    } 

Для меня аварий произошел только при одновременном выполнении других действий, которые могли вызвать сбор мусора, например, вызывать unloadAndStop на другом swf, который был загружен.

Удачи!