flash / flex 4应用程序 - 为什么/何时它在不同环境中的工作方式不同?

时间:2012-05-03 09:36:10

标签: actionscript-3 flash flex

自从一周以来,我发现我的flex 4应用程序在我的本地环境和远程部署环境中的工作方式不同。

我将整个bin-debug文件夹复制到遥控器中,我不知道为什么会这样?它将相同的swf复制到遥控器中,并且它与我用来运行应用程序的浏览器相同,但它只是表现不同。

好吧,我读过一些有布局问题的帖子在本地和远程显示不同但让我澄清一下,在我的情况下,我没有看到布局问题,但代码似乎有所不同。 就像,我在我的代码中实现了动态屏蔽,共谋检测,深度排序算法,在当地环境中工作得很好,在远程环境中也不行。

如果你认为它可能是缓存问题,那么让我告诉你。我已经清除了浏览器的缓存(实际上我在运行应用程序之前几乎都是这样做的)。此外,我已完全删除遥控器中的文件并再次复制所有文件。我也尝试过部署“发布”版本但同样的事情。我已经用不同的组合多次完成了上述每个步骤,看看修复但没有运气。

我相信这不重要

我在本地环境中使用WAMP,在远程使用LAMP

为了确保我看到最新版本,我添加了版本号并显示在调试窗口中。两个环境都显示相同的数字,因此这两个版本都是相同的版本。

这些是我与主swf一起复制的所有文件

framework_4.0.0.14159.swf
main.swf
osmf_flex.4.0.0.13495.swf
rpc_4.0.0.14159.swf
spark_4.0.0.14159.swf
sparkskins_4.0.0.14159.swf
test.swf
textLayout_1.0.0.595.swf

我不知道如何解决这个问题。请帮忙

1 个答案:

答案 0 :(得分:0)

非常感谢shaunhusain。我使用剪切工具使用了跟踪并发现了错误。

全部在主机名中。我根据网址中的扩展名找到资产类型。如果资产类型是“图像”,我删除透明像素,如果不是图像(xml,swf等),则忽略它。

这是确定资产类型的代码(注意默认值是'未知')

    private function getAssetType(url:String):String{

        var type:String = "unknown";

        var ext:String = getExtension(url);

        if (ext == "png" || ext == "jpg" || ext == "jpeg" || ext == "bmp"){
            type ="image";
        }else if (ext == "swf"){
            type = "swf";
        }

        return type;

    }
    // this is the buggy code
    private function getExtension(str:String):String{
        return  str.split(".")[1];
    }

错误发生在getExtension()函数中。我只期望文件名中的点,并且split返回两个数组元素,第二个元素是扩展名。

如果您传递此变量

http://localhost/assets/images/Rendered/aksum_se.png

它返回png

http://19x.19x.24x.xxx/assets/images/Rendered/aksum_se.png

它返回19x,因此它是一种未知格式。好吧,我修好了。

现在我有点好奇为什么我的深度排序不起作用,这与任何图像网址无关,但我想我会成功。