Actionscript 3 在AS3中处理安全错误
我正在为AS3中的vimeo播放器使用导入的类,它是官方的vimeo播放器api(vimeo.com)。我想处理类实例抛出的任何安全错误(当obect无法加载视频的外部URL时,就会抛出这些错误)。这就是我得到的:Actionscript 3 在AS3中处理安全错误,actionscript-3,api,error-handling,vimeo,Actionscript 3,Api,Error Handling,Vimeo,我正在为AS3中的vimeo播放器使用导入的类,它是官方的vimeo播放器api(vimeo.com)。我想处理类实例抛出的任何安全错误(当obect无法加载视频的外部URL时,就会抛出这些错误)。这就是我得到的: var clipPlayer = new VimeoPlayer("5d22d3942a54d7c75b931bab4a911857", videoID[clickedClip], fullVideoWidth, fullVideoHeight, "10", 2);
var clipPlayer = new VimeoPlayer("5d22d3942a54d7c75b931bab4a911857", videoID[clickedClip], fullVideoWidth, fullVideoHeight, "10", 2);
clipPlayer.addEventListener(SecurityErrorEvent.SECURITY_ERROR , vimeoError);
当然,在后面的代码中,我得到了处理事件的函数:
function vimeoError (e : SecurityErrorEvent) : void {
trace("vimeo player failed to load");
}
这一切看起来很简单,但错误处理程序并没有启动。我一定是错过了什么。。。可能您无法在VimeoPlayer对象上注册此类事件侦听器。然而,我很确定是VimeoPlayer对象抛出了它们。下面是我得到的一个例子:
Error opening URL
'http://api.vimeo.com/moogaloop_api.swf?oauth_key=5d22d3942a54d7c75b931bab4a911857&clip_id=21185860&width=500&height=281&fullscreen=0&fp_version=10&api=1&cache_buster=565.7249609939754'
SecurityError: Error #2000: No active security context.
调度的错误事件与抛出的
error
s分开。在许多情况下,这两种情况都可能发生,然后您需要倾听前者,并在可能抛出的代码周围使用try
语句捕捉后者。您引用的错误似乎属于抛出的类型(因为事件通常字符串化为包含方括号的内容)。如果它是抛出的错误,那就很奇怪了。在我看来,它必须是异步的,因为它必须在它的类中运行自己的代码来加载URL,这是不可能的;不要一蹴而就。告诉我,如果我;我错了,因为我不完全理解AS3Thrown错误中的错误是如何工作的。从以下相当令人不快的意义上讲,own错误可能是异步的:VimeoPlayer实现可能注册了一个内部事件处理程序,而该处理程序所做的某件事会导致抛出错误并忽略捕获它。在这种情况下,您无法直接捕获错误。据推测(这确实超出了我自己的AS3 fu的限制),您可以通过在LoaderInfo.uncaughtErrorEvents
中注册uncaughtError
处理程序来实现这一点,但这将为您提供所有信息,并且没有简单的方法来区分特定的安全性错误。Hmmm。。。。。如果我能弄明白的话,你刚才描述的最后一种方法可能适用于我的情况。如果我只是能够区分SecurityErrors和那些没有的错误,那么无论何时发生任何加载错误,我都可以执行单个操作。我会关注这一点。尝试了uncaughtError策略,并得到了我所有的加载错误来触发我所需要的!这比我以前想要的还要好,因为我不必为安全错误注册每个urlloader!