Actionscript 3 使用AS3代码导出更多.swf文件

Actionscript 3 使用AS3代码导出更多.swf文件,actionscript-3,export,flash,flash-cs5,Actionscript 3,Export,Flash,Flash Cs5,我在我的Flash Professional中有一个小动画,我需要这个动画200多次,上面有不同的文本。文本已经是动态的,在for循环中。我想要的是创建一个循环,用不同的文本创建.swf。所以我只执行一次,它会自动创建200多个.swf文件。这可能吗?与其拥有200个swf文件,不如尝试只拥有一个swf文件,并使用Flashvar定义要显示的文本。 下面是一个快速示例,介绍如何执行此操作以及如何使用此操作 在Flash代码中,您将有如下内容: // var myTextField:TextFie

我在我的Flash Professional中有一个小动画,我需要这个动画200多次,上面有不同的文本。文本已经是动态的,在for循环中。我想要的是创建一个循环,用不同的文本创建.swf。所以我只执行一次,它会自动创建200多个.swf文件。这可能吗?

与其拥有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;
}
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
如果在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>

这在理论上是可能的,但非常不切实际。你为什么要这么做?可能还有比这更好的解决方案。我想这样做,因为如果我的动画中有一点变化,我必须再次导出200次。。。什么是更好的解决方案?为什么不使用Flashvars设置文本的动态值?这样,您就不必生成200 swf。只有一个,将加载不同的参数。如果需要的话,FlashVar甚至可以直接在swf url中设置。uff我从来没有使用过它,你能给我一个简单的例子吗?