2009-07-16 127 views
0

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

感谢

PS:通过展示我的意思是部署到Tomcat在我的电脑,给我的老板到应用程序的链接。我们都使用Win XP。另外,当我安装了Netscape浏览器的调试FP和IE的标准FP(在我的电脑上)时,结果是一样的 - 在Firefox,Opera,Chrome和IE中的灰色背景下工作。我已经编译为Debug和Release。我使用Flash开发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> 
+0

您的老板可以打开其他您尚未创建的swf文件吗?我想你在编译发布应用程序时没有遇到错误?尝试在发布中添加一些警报,以了解应用程序在多大程度上加载了 btw与最后一个代码您看到了什么?因为画布应该填充整个应用程序 – Arno 2009-07-16 12:55:50

+0

是的,他可以。不,完全没有错误。 Alert甚至在预初始化时也没有显示出来。用上面的代码我看到灰色背景100%x100%,而在调试时它是黑色的,就像它应该。 – 2DH 2009-07-16 13:52:52

回答

5

同一种问题的我面临几天就回来。

我用下面的代码

//调用函数 traceDetails(新的错误())

私有函数traceDetails(ERR:错误):无效 { 犯错。getStackTrace() } 在我的部分,我使用的方法是“getStackTrace()”这里需要记住的是,getStackTrace()方法仅适用于Flash调试器和不适用于Flash播放器。所以无论我没有安装Flash调试器,我的应用程序都停止运行。

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

我相信这将解决你的问题

编码快乐:)

0

只是一些建议...

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

这闻起来像一个安全问题给我;调试器比标准播放器执行更少的安全策略,并且您提及的Tomcat和那些命名空间引用表明这里有一些与安全相关的事情。

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

0

我基督教同意。它与标准Flash播放器的安全策略有关。删除/修补FlexSprite类(称为getStackTrace()函数)后,该应用程序现在可以正常工作。感谢您的帮助。 已定义