1

这可能吗?我想要一个主 swf 可供安装了 flash 9 或 flash 10 的用户查看。在这个 swf 内部,将只为安装了 flash 10 的用户加载一个单独的模块。此模块将使用一些高级 flash 10 功能。

4

3 回答 3

1

当然,正如您所描述的那样,这应该可以正常工作。在 Flash 9 中创建您的基础 SWF,进行版本检查,并可选择加载另一个发布为 10 的 SWF。Flash 将呈现 v10 SWF 中的高级功能,无论加载到哪个 SWF 版本。

请记住,版本是作为字符串返回的,所以一定要parseInt对它做 a 。

于 2009-05-17T02:10:51.103 回答
1

除非您尝试在 Flash 10 SWF 中使用 Flash 10 特定库,否则这应该可以正常工作,这可能就是您正在做的事情。我刚刚尝试过,但 Adob​​e 再次对他们的 Flash/Flex 库设计和质量感到失望。

例如,我试图做以下事情

我有一个 Flash 9 基础 SWF,如果用户的 Flash Player 为 10 或更高版本,它将加载一个 Flash 10 模块。此 Flash 10 模块最终使用 Flash 10 特定库,例如:1) flash.net.NetStreamPlayOptions 2) flash.net.NetStreamPlayTransitions 3) NetStream.play2 不幸的是,当我这样做时,Flash 运行时抱怨没有这样的库NetStreamPlayOptions、NetStreamPlayTransitions 和 NetStream.play2。我试图通过复制 NetStreamPlayOptions 和 NetStreamPlayTransitions 来解决这个问题,这让我走得更远,但不幸的是,即使我将 NetStream 实例转换为对象,我也无法调用 NetStream.play2。

I believe it works like this because the base SWf, which is Flash 9, uses the playerglobal.swc, intended for Flash 9. When it loads up the Flash 10 SWF, it still ends up using the Flash 9 playerglobal.swc because the environment was initialized for Flash 9, which causes problem with the Flash 10 SWF. I have yet to find a way around this.

When Flash was switching from AS1 -> AS2 -> AS3, it made sense why it wasn't backwards compatible, but now AS3 cannot always load AS3, which in my opinion is very disappointing.

于 2009-07-29T02:14:37.377 回答
0

自从我不开发 Flash 应用程序以来已经有很长时间了,但是……这些是我的 2 美分:

您可能必须将主 Flash 编译为 10,由于升级警告,这可能是一个问题。

这是一个可能的解决方法: http ://codeofdoom.com/wordpress/2009/02/09/compiling-to-flash-10-requiring-flash-9/

完成之后,我认为就像你说的那样,检测闪存版本和加载不同的 swf 模块很容易。

于 2009-05-15T19:50:41.213 回答