没有Flash Player的调试版本,Flex应用程序无法运行

时间:2009-07-16 12:29:13

标签: flex actionscript-3 flash

最近,当我试图向我的老板展示我的工作成果(一些Flex应用程序)时,我很惊讶在我的电脑上运行得非常好的应用程序,在我的老板的电脑上显示不正确(唯一可见的是默认的灰色背景)。经过3小时的尝试绝对一切,最后当我将他的Flash Player版本从标准版改为调试版时,应用程序出现了(两者都是v.10.0.22.87)。有谁知道这可能是什么原因(任何编译器标志或......)。强迫我的老板安装调试FP是相当不错的,但强迫应用程序的最终用户这样做是不可接受的。

由于

PS:通过显示我的意思是在我的电脑上部署到Tomcat并给我的老板一个指向应用程序的链接。我们都使用Win XP。此外,当我为Netscape浏览器安装调试FP和IE的标准FP(在我的电脑上)时,结果是相同的 - 在IE中使用Firefox,Opera,Chrome和灰色背景。我已将它们编译为Debug和Release。我正在使用Flash Develop 3.0.2 RTM

将我的应用程序剥离后,它仍然只适用于调试FP

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:ca="components.*"
    xmlns:ea="components.editAreas.*"
    layout="vertical"
    backgroundColor="black">

    <mx:Canvas id="header"
        verticalScrollPolicy="off"
        horizontalScrollPolicy="off"
        styleName="header"
        width="100%"></mx:Canvas>

    <mx:Canvas id="mainContent"
        width="100%" height="100%"
        verticalScrollPolicy="off">
    </mx:Canvas>

</mx:Application>

4 个答案:

答案 0 :(得分:5)

我几天前面临同样的问题。

我正在使用以下代码

//调用函数 traceDetails(new Error())

私有函数traceDetails(错误:错误):void {        的 err.getStackTrace() } 在我的部分我使用的方法是“getStackTrace()”这里要记住的是 getStackTrace()方法仅适用于Flash Debugger和Not With Flash player 。因此,如果我没有安装Flash Debugger,我的应用程序就会停止运行。

所以要做的事情 1.检查您是否使用仅在Flash调试器中可用且不在Flash播放器中可用的任何API调用(如果您发现尝试注释该行应用程序将开始运行)。 2.在运行应用程序的任何地方或者在Flash调试器API调用之前安装Flash Debugger版本。检查if(Capabilities.isDebugger)是否仅使用这些API或跳过这些行。

我相信这会解决您的问题

快乐编码:)

答案 1 :(得分:0)

只是一些建议......

  • 确保您正在部署该版本 建立。
  • 这样做之后你可能想要 删除浏览器缓存 - 我 我们的用户经常会这样做 发布后,它将会发布 偶尔加载旧版本 释放后,那里。
  • 您使用的是模块吗?你也许吧 引用调试模块?
  • 检查您在路径中定义的路径 项目的编译器参数,如 以及任何模块的路径 可能正在使用。你能为我们提供你的编译器args吗?
  • 您和您的老板是否使用相同版本的I.E。?
  • 您是否更改了index.html文件以引用另一个swf?

答案 2 :(得分:0)

这对我来说是一个安全问题;调试器强制执行的安全策略少于标准播放器,你提到的Tomcat和那些命名空间引用表明这里有一些安全相关的东西。

什么是组件。*和components.editAreas。*用于?您是否尝试加载和访问应用程序中的任何二进制数据?你可以发一些代码吗?因为你在这里发布的内容非常无害。可能更容易帮助更多细节,但同样,你很可能在某个地方遇到安全限制。

答案 3 :(得分:0)

我同意克里斯蒂安。它与标准Flash播放器的安全策略有关。删除/修补调用getStackTrace()函数的FlexSprite类后,该应用程序现在正常工作。谢谢您的帮助。 surfined