AS3:将MovieClip或Canvas导出为swf

3
我正在开发一个应用程序,用户可以编辑简单的贺卡并将其发送给另一个用户。目前我们通过导出图形文件并使用一些服务器脚本来实现这一点。
现在,我们发现需要将该贺卡导出为swf格式。这张贺卡基本上是一个(Flex)画布,包含一些图像和标签。
你认为这可行吗?任何帮助将不胜感激。
谢谢!
2个回答

5

将MovieClip对象深度复制到ByteArray中并将其转储到文件中。

var buffer:ByteArray = new ByteArray();
buffer.writeObject(MOVIE_CLIP_HERE);
buffer.position = 0;
buffer.writeBytes(...);

谢谢你再次添加代码。迈克尔的问题很重要。 - David Salzer
是的,它可以!它甚至也可以反向操作!(加载一个 .swf 文件,它就可以转换为 MovieClip)。 - LiraNuna
LiraNuna- 谢谢!你知道它是否也适用于Canvas吗? (我会自己尝试并稍后发布结果) - David Salzer
我认为只有MovieClip才拥有这种奢侈。我没有太多使用Flex,所以可能是错误的。 - LiraNuna
@LiraNuna - 这看起来非常有趣,但我无法使其工作。我正在尝试通过AIR将MovieClip保存为swf文件,但在调用writeObject(movieClip)后,ByteArray从未有超过1个字节可供读取。我也不确定“...”代表这里的参数是什么意思,“buffer.writeBytes(...);”您是将缓冲区写回自身吗?听起来好像您已经使其工作了,如果您可以发布更完整的示例,我将不胜感激。似乎网上没有关于这种技术的任何信息。 - Dane
1
这种技术在新的播放器上不起作用。我仍在积极寻找一种深度复制MovieClip的方法。这种方法适用于Flash Player 9,而10则不喜欢它。 - LiraNuna

1

服务器端的Flex SDK可以在任何Linux / Unix / Windows机器上通过命令行编译ActionScript或Flex。

我使用Flex命令行编译器从我的Linux桌面开发Flash应用程序,在服务器上也能很好地工作,并且可以从您的Web应用程序脚本化。

以下是步骤:

1.) 从Adobe下载Flex SDK,并将其解压缩到服务器上。

2.) 为卡生成ActionScript *.as文件或Flex *.mxml文件。

3.) 在服务器上的Linux shell中运行此命令以生成SWF。

SOURCE_FILE=/dir/with/flex_sdk/

OPTS='-use-network=false'
# note this is a relative path to the flex sdk
CONFIG_FILE='flex-config.xml'

if [ -f $CONFIG_FILE ]; then
    OPTS=$OPTS' -load-config='$CONFIG_FILE
fi

OPTS=$OPTS' -output /path/to/ouput/swf'

/path/to/flex_sdk/bin/mxmlc $OPTS $SOURCE_FILE

sdk也适用于Windows,但我不确定命令行参数是什么


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接