1

我在使用旧的 Flash 应用程序时遇到问题。在应用程序的整个生命周期中,它会打开和关闭多个 NetConnection。在需要创建最后一个连接之前,这可以正常工作,只要我调用 new 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 Projector 播放它时它运行正常。有任何想法吗???

4

1 回答 1

0

我发现在 NetStreams 之前初始化 NetConnections 存在问题。始终提前初始化您的 NetConnections,并在与您的 NetStreams 不同的函数中。

这是一个示例,如果我将所有这些代码放在 init() 函数中,Flash Player 会崩溃,但通过在我的 Class 的构造函数中初始化 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);
    }

对我来说,崩溃只发生在同时执行其他可能调用垃圾收集的事情时,比如在另一个已加载的 swf 上调用 unloadAndStop。

祝你好运!

于 2012-07-19T23:48:32.183 回答