【问题标题】:Actionscript Loader event not firing in FirefoxActionscript Loader 事件未在 Firefox 中触发
【发布时间】:2012-03-15 00:33:34
【问题描述】:

我想知道是否有人可以提供帮助,因为我不是动作脚本大师。

我刚刚继承了一些将嵌入式 rdio 音乐播放器生成到 swf 中的代码。它在 Firefox 和 safari 中效果很好,除了嵌入式播放器没有出现在 Firefox 中...... :(

这是 Loader 类或 contentLoaderInfo 事件的常见问题吗?

import flash.display.Loader;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.*;
import flash.net.URLRequest;


flash.system.Security.allowDomain('rd.io');
flash.system.Security.allowDomain('rdio.com');


/* AD SPECIFIC VARIABLES */

var loader_url:String = 'http://rd.io/e/QUzrrjNWMC8/220/500/';
var loader_x:int = 40;
var loader_y:int = 50;


/* RDIO EMBED */


stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
var loader:Loader = new Loader();
loader.load( new URLRequest(loader_url) );
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderDone);
var sprite:Sprite = this;
function loaderDone(event: Event):void
{
    event.target.removeEventListener(Event.COMPLETE, loaderDone);
    loader.x = loader_x;
    loader.y = loader_y;
    sprite.addChild(loader);
}

【问题讨论】:

    标签: actionscript-3 flash firefox actionscript flash-cs5


    【解决方案1】:

    您确定事件没有触发吗?

    我最初的想法是,这根本不是 Flash 问题,而是 CSS 问题。确保您的 Flash 内容没有被 CSS 隐藏,例如 CSS 重置表。

    我知道没有与 Loader 或 contentLoaderInfo 相关的浏览器特定问题。根据经验,我真的怀疑这就是您的问题所在。

    您可以添加这些其他事件来尝试诊断 AS3 错误:

    loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
    loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
    loader.contentLoaderInfo.addEventListener(Event.OPEN, openHandler);
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    loader.contentLoaderInfo.addEventListener(Event.UNLOAD, unLoadHandler);
    

    【讨论】:

    • 感谢您的回复。它不是 css 问题,因为它在其他浏览器中工作,并且 swf 加载总是加载,但嵌入式 rdio 播放器不会出现在 Firefox 中。我不完全确定该事件没有触发,但是我对还有什么问题一无所知。
    • 那么在 Firefox 中您看到的是父 SWF 而不是子 SWF?确保同时监听 IO 错误和安全错误,如果未触发完成,则将是其中一个事件。
    • 再次感谢!!对,那是正确的。在 Firefox 中,我看到了容器(父 SWF),但没有看到嵌入式 rdio 播放器。好的,酷。你有一个例子来说明我如何将这些监听事件添加到我的代码中吗?我在动作脚本方面不是很有经验。
    • 当然,请参阅编辑后的答案。要在浏览器中进行调试,请尝试在其中一个事件触发时向舞台添加可视消息。
    • 太棒了,谢谢。从那以后,我发现 Firefox 中的 Firebug 告诉我 rd.io 给出了 403 错误......这是否意味着它可能与 rdio 播放器有关? 200okay.com/test/rdio_300x600-fffix.swf
    【解决方案2】:
    1. 始终监听错误或异常

      loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);

    2. 监听事件后调用 load() 函数。 (不确定是否会产生太大影响,但这是一种很好的编程习惯)

      var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderDone); loader.load(新的 URLRequest(loader_url));

    【讨论】:

      【解决方案3】:

      此链接可能会有所帮助,完成事件有时无法在 Firefox 上播放。 http://numiko.com/labs/2009/12/flash-event-complete-sometimes-doesnt-fire-in-firefox/

      【讨论】:

        猜你喜欢
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-18
        • 1970-01-01
        • 2015-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多