Actionscript Loader事件未在Firefox中触发

时间:2012-03-15 00:33:35

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

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

我刚刚继承了一些将嵌入式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);
}

3 个答案:

答案 0 :(得分:0)

你是否肯定该事件没有解雇?

我最初的想法是,这根本不是Flash问题,而是CSS问题。确保CSS不会隐藏您的Flash内容,例如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);

答案 1 :(得分:0)

  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(new URLRequest(loader_url));

答案 2 :(得分:0)

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