css - 如何在从 if 加载样式(或捕获错误)之前测试 SWF URL?

标签 css apache-flex url actionscript

我正在尝试使用以下代码从外部 SWF 加载样式,但当 URL 无效时我不断收到 ActionScript 错误:

Error: Unable to load style(Error #2036: Load Never Completed. URL: http://localhost/css/styles.swf): ../css/styles.swf.
at <anonymous>()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\styles\StyleManagerImpl.as:858] 


private function loadStyles(): void
{
    try
    {
        var styleEvent:IEventDispatcher = 
            StyleManager.loadStyleDeclarations("../styles.swf");

        styleEvent.addEventListener(StyleEvent.COMPLETE, 
                                                    loadStyle_completeHandler);

        styleEvent.addEventListener(StyleEvent.ERROR, 
                                                    loadStyle_errorHandler);
    }
    catch (error:Error)
    {
        useDefault();
    }
}

private function loadStyle_completeHandler(event:StyleEvent): void
{
    IEventDispatcher(event.currentTarget).removeEventListener(
        event.type, loadStyle_completeHandler);

    goToNextStep();
}

private function loadStyle_errorHandler(event:StyleEvent): void
{
    IEventDispatcher(event.currentTarget).removeEventListener(
        event.type, loadStyle_errorHandler);

    useDefault();
}

我基本上想继续使用默认样式,如果无法加载此文件,则用户不会看到错误 - 但我似乎找不到任何方法来执行此操作。

最佳答案

有趣的问题。尝试删除 removeEventListener 调用,或将其注释掉;在我的简短测试中,事件处理程序似乎被调用了两次(我不确定为什么,尽管我怀疑它与样式继承有关),并且注释该行就成功了。

如果您有相同的结果,您可以先尝试检查监听器(使用 hasEventListener),然后再将其附加到您的 loadStyles() 函数中。希望对您有所帮助!

关于css - 如何在从 if 加载样式(或捕获错误)之前测试 SWF URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/448777/

相关文章:

css - Bootstrap 4 轮播中的内容对齐/禁用左侧指示器

apache-flex - 您知道 Adob​​e Air/Flex 应用程序的最佳实践和设计模式吗?

flash - ActionScript 3 对象的属性名称到字符串?

java - Struts2注解@RequestParameter

html - CSS - 另一个类中的类

css - min-height 100% 不会扩展 WebKit 浏览器中的整个页面

php - 摘录下面的图片 php

apache-flex - 如何将 Assets 添加到 Flex 库?

url - YouTube URL方案

django - 通过电子邮件将 url 发送到私有(private)页面(使用 django?)