能够从 Flash 动态选择多种颜色/符号设计的最佳方式
Posted
技术标签:
【中文标题】能够从 Flash 动态选择多种颜色/符号设计的最佳方式【英文标题】:Best way to be able to pick multiple colors/designs of symbols dynamically from flash 【发布时间】:2011-01-26 23:05:07 【问题描述】:对不起,标题太复杂了……我必须尝试十分钟才能得到一个好的描述性标题!基本上,这就是场景。
假设用户可以选择五十种不同的帽子颜色和样式来戴上头像。化身可以移动他的头,因此我们需要在符号中进行相同类型的移动以应对这种情况。
此外,它还从数据库中获取“头像”上的帽子。问题是我们不能只制作 50 个不同的框架,每个框架上都有不同的帽子。每个帽子符号都有相同的动作,只是样式、颜色和尺寸不同。
那么我怎样才能创建一个变量是 HAT,这样我们就可以将适当的帽子符号放入变量中,并且始终能够调用 Hat.gotoAndplay('tip_hat') 或任何其他通用函数...... 。 那有意义吗?
希望这不会太令人困惑。对不起,我不擅长视觉 Flash 的东西,但它必须完成!谢谢!
【问题讨论】:
【参考方案1】:debu's suggestion 关于帽子容器的意义在于分离出对帽子运动的控制。
您可以进一步区分每顶帽子外观的不同方面(不仅是颜色,还包括款式、图案、尺寸、方向等) - 这样您就可以生产出各种不同的帽子几个参数。
因此,例如 6 种样式 x 4 种图案 x 8 种颜色 = 192 种不同的帽子(不必每一个都画!)
(来源:webfactional.com)
【讨论】:
是的,这是一个好主意;它会减少单独图像的数量,同时保持超大的多样性:D 优秀的评论,并为图片定义+1!这正是我正在做的。【参考方案2】:您可以通过多种方式做到这一点;首先,您可以在 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 中的矢量对象,它们将比 jpeg 更快地加载,如果它们在 IDE 中,它们将在 swf 加载时加载(例如在网页上)。如果您将每顶帽子作为 jpeg 加载,则必须在加载 swf 本身后进行。根据它们加载的速度(它们有多小),这可能更可取,因为这意味着您的 swf 最初加载速度会更快。看看我在说什么?我猜这一切都取决于你如何做事:) 谢谢!帽子对象是什么 - 是 - 实际的符号?有几顶帽子只有不同的颜色,然后有几个不同的品种。我从未尝试过更改符号的颜色。我什至不知道你是否可以,但谢谢你的提示!我只需要做不到一半的帽子! +1 帽子相关的编程问题!认为我们可能需要为此创建一个特殊标签... :)以上是关于能够从 Flash 动态选择多种颜色/符号设计的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章