我的 Flash Professional 中有一个小动画,我需要这个动画超过 200 次,上面有不同的文本。文本已经是动态的,在 for 循环中。我想要的是创建一个循环来创建具有不同文本的 .swf。所以我只执行一次,它会自动创建 200 多个 .swf 文件。那可能吗?
问问题
211 次
1 回答
0
与其拥有 200 个 swf 文件,不如尝试只拥有一个 swf 文件,并使用 Flashvar 来定义要显示的文本。这是有关如何执行此操作以及如何使用它的快速示例。
在 Flash 代码中,您将拥有类似的内容:
// var myTextField:TextField; // in this sample, I want to set the content of myTextField
// here, I am using an Object as an associative Array. Thus, I can do textTable[''] to obtain 'text sample 1'
var textTable:Object = {
label1 : "text sample 1",
label2 : "foo bar",
showError : "some error occured",
pizza : "I love pizza"
// [...]
}
// I'm fetching the flashvars in params, and then specifically the content of the labelKey Flashvar.
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var key:String = params.labelKey;
// I'm getting the text that correspond to the given key, and set myTextField with it.
var label:String = textTable[key];
if (label != null) {
myTextField.text = label;
}
如果您在 HTML 中加载 swf,您将在 HTML 中拥有类似的内容:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400" id="main">
<param name="movie" value="main.swf" />
<param name="FlashVars" value="labelKey=label2" /><!-- Flashvar : we set labelKey to 'label2' - the swf will show "foo bar" -->
<embed src="main.swf" width="550" height="400" autostart="false" quality="high" bgcolor="#ffffff" FlashVars="labelKey=label2" type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
如果您不这样做,并且只使用 URL,它将如下所示:
http://my.domain.com/main.swf?labelKey=label1
or
http://my.domain.com/main.swf?labelKey=showError
or
http://my.domain.com/main.swf?labelKey=pizza
于 2013-07-26T13:12:27.673 回答