2011-12-12 31 views
2

这里的情景:3D变换上装载的主权财富基金不工作

我们的创作团队生产的SWF动画在Flash CS5创作工具,我们(工程师)在运行时加载到使用Flex SDK构建一个项目。不使用“3D旋转工具”的动画可以很好地工作。使用3D旋转工具

动画给予以下行为:

  • 影片剪辑显示有使用3D旋转工具在舞台的左上角显示为,如果他们没有变换应用于3D补间在所有(即,好像他们的Matrix3D是被忽略,他们的矩阵身份)
  • 影片剪辑有普通2D动画补间正常
  • Alpha和其他非亲和性质吐温正常

当在浏览器选项卡或独立Flash播放器中加载3D和非3D动画时,它们都可以正常播放。 3D仅在加载到我们的代码生成的SWF中时才会中断。

因此,对于在CS5创作环境中应用了3D转换的MovieClip而言,当SWF由我们的代码SWF加载时,这些转换似乎没有得到应用/尊重。

这是我首次涉足3D,所以我不知道这可能是造成这一点,但这里是我测试/检查/试过了,都无济于事:

  • 我已经确保在创作环境中选择了动作脚本3和Flash Player 10/10.1。
  • 我试过将动画加载到Flash播放器版本10.0,10.1,10.2和11中使用Flex 4.1,4.5和4.6构建的代码SWF中
  • 我已经将Matrix3D应用于加载SWF动画的容器,身份和旋转。我可以看到旋转的容器可以用3D进行工作,所以我知道我的代码SWF具有3D功能。

我希望有一些简单的技巧,我错过了一些设置。谢谢你的帮助!

回答

0

我不能发布代码,但事实证明这是在我们的装载代码过度谨慎的微妙以前从未抓到我们:

我们有一个加载的图片供我们自定义类(包括内置的一些实用程序和通用功能)。在加载完成时,这段代码将loader.content作为一个子项添加到自身,并且 - 这里是kicker - 使用close()和unloadAndStop()清理不再需要的加载器。

我想这样清理加载程序似乎是合理的,它一直工作到现在(静态图像,静态SWF和SWF动画),但它导致上述问题加载3D SWF(和它事实证明这也导致加载视频SWF时发现奇怪的URL未找到错误)。

禁用过度谨慎的Loader清理解决了我的问题。

0

这可能是Flex代码中正在发生的事情,比如停止动画或者不启动它们。你能发布你用来加载SWF的代码吗?

这也可能是一种竞争条件。在使用SWF之前,您可能必须等待SWF文件加载(例如,添加了ToStage事件等)。

0

我碰到你的问题就来了,因为我有完全一样的问题......而很多闲逛后,该解决方案(对我来说)归结为:

如果,在任何时候,你都强烈地将你的CHILD swf输入到一个类中,或者使用PARENT中的点语法引用它的任何变量,它就会中断。即使它只是一个跟踪消息。

我不得不更换此:

var stoneVideo:StoneVideo = loader.content as StoneVideo; 
stoneVideo.stoneText = model.stoneText; 

有了这个:

loader.content["stoneText"] = model.stoneText; 

,并开始正常工作。希望这可以帮助!

+0

感谢您的注意。这不是我的问题的原因,但很有纪录。 –