Actionscript 3 加载SWF上的3D变换不是';行不通
以下是场景: 我们的创作团队在Flash CS5创作工具中制作SWF动画,我们(工程师)在运行时将其加载到使用Flex SDK构建的项目中。不使用“3D旋转工具”的动画效果很好 使用三维旋转工具的动画具有以下行为:Actionscript 3 加载SWF上的3D变换不是';行不通,actionscript-3,3d,flash,flash-cs5,Actionscript 3,3d,Flash,Flash Cs5,以下是场景: 我们的创作团队在Flash CS5创作工具中制作SWF动画,我们(工程师)在运行时将其加载到使用Flex SDK构建的项目中。不使用“3D旋转工具”的动画效果很好 使用三维旋转工具的动画具有以下行为: 使用3D旋转工具应用3D Tween的MovieClips显示在舞台的左上角,就好像它们根本没有变换一样(即,就好像它们的矩阵X3D被忽略了,它们的矩阵是同一的) 具有正常2D tweens的MovieClips将正确设置动画 Alpha和其他非仿射性质 在浏览器选项卡或独立fl
- 使用3D旋转工具应用3D Tween的MovieClips显示在舞台的左上角,就好像它们根本没有变换一样(即,就好像它们的矩阵X3D被忽略了,它们的矩阵是同一的)
- 具有正常2D tweens的MovieClips将正确设置动画
- Alpha和其他非仿射性质
- 我已经确保在创作环境中选择了actionscript 3和Flash Player 10/10.1
- 我曾尝试将动画加载到Flash player版本10.0、10.1、10.2和11中使用Flex 4.1、4.5和4.6构建的代码SWF中
- 我已经将Matrix3D应用于加载SWF动画(标识和旋转)的容器。我可以看到旋转的容器在透视图中使用3D,所以我知道我的代码SWF支持3D
我希望有一些简单的技巧,一些我错过的设置。谢谢你的帮助 这可能是Flex代码中正在发生的事情,例如停止动画或不启动动画。您可以发布用于加载SWF的代码吗
这也可能是一种竞赛条件。在使用SWF之前,您可能必须等待SWF加载(例如,AddedStatage事件等) 这可能是Flex代码中正在发生的事情,例如停止动画或不启动动画。您可以发布用于加载SWF的代码吗
这也可能是一种竞赛条件。在使用SWF之前,您可能必须等待SWF加载(例如,AddedStatage事件等) 我遇到了你的问题,因为我遇到了完全相同的问题。。。经过反复摸索,解决方案(对我来说)归结为: 如果在任何时候,您将您的子swf强类型化到一个类中,或者使用父类的点语法引用它的任何变量,那么它将中断。即使只是一条跟踪消息 我必须替换这个:
var stoneVideo:StoneVideo = loader.content as StoneVideo;
stoneVideo.stoneText = model.stoneText;
为此:
loader.content["stoneText"] = model.stoneText;
它开始正常工作。希望这有帮助 我遇到了你的问题,因为我遇到了完全相同的问题。。。经过反复摸索,解决方案(对我来说)归结为: 如果在任何时候,您将您的子swf强类型化到一个类中,或者使用父类的点语法引用它的任何变量,那么它将中断。即使只是一条跟踪消息 我必须替换这个:
var stoneVideo:StoneVideo = loader.content as StoneVideo;
stoneVideo.stoneText = model.stoneText;
为此:
loader.content["stoneText"] = model.stoneText;
它开始正常工作。希望这有帮助 我无法发布代码,但事实证明,这是我们的加载程序代码中一个过度谨慎的微妙之处,我们以前从未发现过: 我们有一个自定义类,可以为我们加载所有图像(包括一些内置的实用程序和通用功能)。加载完成后,此代码获取loader.content,将其作为子对象添加到自身中,然后——这里是kicker——使用close()和unloadAndStop()清理不再需要的加载程序 我认为以这种方式清理加载程序似乎是合理的,而且它一直工作到现在(使用静态图像、静态SWF和SWF动画),但它在加载3D SWF时导致了上述问题(事实证明,这也导致加载视频SWF时出现奇怪的URL not found错误)
禁用过度谨慎的加载程序清理修复了我的问题。我无法发布代码,但事实证明,这是我们的加载程序代码中一个过度谨慎的微妙之处,我们以前从未发现过: 我们有一个自定义类,可以为我们加载所有图像(包括一些内置的实用程序和通用功能)。加载完成后,此代码获取loader.content,将其作为子对象添加到自身中,然后——这里是kicker——使用close()和unloadAndStop()清理不再需要的加载程序 我认为以这种方式清理加载程序似乎是合理的,而且它一直工作到现在(使用静态图像、静态SWF和SWF动画),但它在加载3D SWF时导致了上述问题(事实证明,这也导致加载视频SWF时出现奇怪的URL not found错误)
禁用过于谨慎的加载程序清理修复了我的问题。谢谢您的提示。这不是我的问题的原因,但很高兴有记录在案。谢谢你的留言。这不是我问题的原因,但记录在案很好。