Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在AS3中处理安全错误_Actionscript 3_Api_Error Handling_Vimeo - Fatal编程技术网

Actionscript 3 在AS3中处理安全错误

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);

我正在为AS3中的vimeo播放器使用导入的类,它是官方的vimeo播放器api(vimeo.com)。我想处理类实例抛出的任何安全错误(当obect无法加载视频的外部URL时,就会抛出这些错误)。这就是我得到的:

    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!