Actionscript 3 能够从flash中动态选择多种颜色/符号设计的最佳方式

Actionscript 3 能够从flash中动态选择多种颜色/符号设计的最佳方式,actionscript-3,flash,flash-cs4,Actionscript 3,Flash,Flash Cs4,对不起,标题太复杂了。。。我一定花了十分钟才得到一个好的、描述性的标题!基本上,情况是这样的 假设一个用户可以选择50种不同的帽子颜色和样式来戴上头像。阿凡达可以移动他的头,所以当这种情况发生时,我们需要在符号中进行相同类型的移动 此外,它还可以从数据库中获取“头像”上应该有哪些帽子。问题是我们不能只制作50个不同的框架,每个框架上都有不同的帽子。每个帽子符号都有相同的运动,只是样式、颜色和尺寸不同 那么,我如何才能生成一个变量,即HAT,这样我们就可以将适当的HAT符号放入变量中,并始终能够调

对不起,标题太复杂了。。。我一定花了十分钟才得到一个好的、描述性的标题!基本上,情况是这样的

假设一个用户可以选择50种不同的帽子颜色和样式来戴上头像。阿凡达可以移动他的头,所以当这种情况发生时,我们需要在符号中进行相同类型的移动

此外,它还可以从数据库中获取“头像”上应该有哪些帽子。问题是我们不能只制作50个不同的框架,每个框架上都有不同的帽子。每个帽子符号都有相同的运动,只是样式、颜色和尺寸不同

那么,我如何才能生成一个变量,即HAT,这样我们就可以将适当的HAT符号放入变量中,并始终能够调用HAT.gotoAndplay('tip_HAT')或任何其他通用函数。。。。这有意义吗


希望不要太混乱。对不起,我对视觉闪光的东西不在行,但必须完成!谢谢

你可以通过多种方式做到这一点;首先,您可以在Flash库中将每个不同的帽子作为不同的符号(如果您使用的是IDE),然后在它们的属性中勾选“Export for Actionscript”,并选择适当的名称。它会告诉您类路径没有定义,并且会自动创建一个(或其他),但这没有问题,因为您不需要为这些对象创建类文件——它们只是带有特定数据的MovieClip扩展

因此,如果你对每一顶帽子都这样做,让我们假设你把它们命名为hat_1,hat_2,等等;然后你需要在你的头像的头部对象中创建一个“帽子”对象。无论何时更改帽子,都会调用该特定帽子对象的新实例,并将其放在舞台上:

//when user chooses a hat, however this is done:
var newHat:Hat_1 = new Hat_1();
avatarBody.avatarHead.hat.addChild(newHat);
然后,该帽子符号被添加到你的头像的帽子对象中,并将按照你的预期与头部对象一起移动。您只需调用不同的帽子类型并移除前一种帽子,就可以随时更换帽子


或者,您可以通过从外部图像加载帽子符号,并将它们存储在变量中,以便在需要添加到化身对象时使用。您可以使用XML来实现这一点;如果你不知道是怎么做到的,我可以解释

你可以通过多种方式做到这一点;首先,您可以在Flash库中将每个不同的帽子作为不同的符号(如果您使用的是IDE),然后在它们的属性中勾选“Export for Actionscript”,并选择适当的名称。它会告诉您类路径没有定义,并且会自动创建一个(或其他),但这没有问题,因为您不需要为这些对象创建类文件——它们只是带有特定数据的MovieClip扩展

因此,如果你对每一顶帽子都这样做,让我们假设你把它们命名为hat_1,hat_2,等等;然后你需要在你的头像的头部对象中创建一个“帽子”对象。无论何时更改帽子,都会调用该特定帽子对象的新实例,并将其放在舞台上:

//when user chooses a hat, however this is done:
var newHat:Hat_1 = new Hat_1();
avatarBody.avatarHead.hat.addChild(newHat);
然后,该帽子符号被添加到你的头像的帽子对象中,并将按照你的预期与头部对象一起移动。您只需调用不同的帽子类型并移除前一种帽子,就可以随时更换帽子

或者,您可以通过从外部图像加载帽子符号,并将它们存储在变量中,以便在需要添加到化身对象时使用。您可以使用XML来实现这一点;如果你不知道是怎么做到的,我可以解释

关于帽子容器是有意义的,以便分离出对帽子运动的控制

你可以通过区分每顶帽子的不同外观(不仅是颜色,还有样式、图案、尺寸、方向等)来进一步了解这一点——这将允许你只需几个参数就可以生产出各种各样的帽子

例如,6种款式x 4种图案x 8种颜色=192种不同的帽子(无需绘制每种帽子!)


(来源:)

关于帽子容器,为了分离对帽子运动的控制,是有意义的

你可以通过区分每顶帽子的不同外观(不仅是颜色,还有样式、图案、尺寸、方向等)来进一步了解这一点——这将允许你只需几个参数就可以生产出各种各样的帽子

例如,6种款式x 4种图案x 8种颜色=192种不同的帽子(无需绘制每种帽子!)



(来源:)

你的第一个选择就是我要做的。但我很快发现我们最终会有很多帽子等等(其他身体部位也有同样的问题)我想我希望我错过了什么,我可以有一个帽子对象,我可以随意装入和取出符号。(或者这基本上就是你说的吗?)。。。您建议的这两个选项中哪一个加载速度更快?我不确定还有什么其他方法可以真正做到这一点,但我建议的方法将有一个专用的“帽子”对象,可以是空的,也可以填充任何您想要的内容。它将是你制作动画的东西,所以它里面的任何东西都会用它来制作动画。然后实例化一个hat,并将其添加到该hat对象中;是的,我想你会有很多潜在的帽子,但实际上没有办法摆脱它。除非帽子只有一个形状,而你所改变的只是颜色/比例?至于更快的加载,这同样取决于你对帽子对象使用的是什么。如果它们是Flash的IDE中的矢量对象,则加载速度将快于JPEG,如果它们在IDE中,则会在swf加载时加载(例如在网页上)。如果您以JPEG格式加载每个帽子,则必须在swf本身加载后进行。根据它们的加载速度(它们有多小),这可能是更好的选择,因为这意味着您的swf最初的加载速度会更快。明白我的意思了吗?全部d