如何在按钮单击时插入电影 - AS3
Posted
技术标签:
【中文标题】如何在按钮单击时插入电影 - AS3【英文标题】:How to insert a movie on button click - AS3 【发布时间】:2012-08-25 07:04:17 【问题描述】:我在频闪网站上工作了一段时间http://strobepage.com/
我希望允许用户为闪光灯选择自己的颜色,这基本上意味着我将能够轻松地覆盖更多颜色组合并在网站上占用更少的空间.. 到目前为止,我已经尝试制作 2 个电影剪辑,每种颜色一个.. 并将其作为一个实例和作为一个整体的电影剪辑( MovieClip(colour1) )来更改它的颜色.. 这有效,但仅限于此具体实例,当用户单击“下一步”以前进到 ROOT 影片的下一帧(显示交换的影片剪辑)时,影片剪辑已恢复到其原始状态..
有没有办法在按钮按下时为影片剪辑永久着色...我似乎认为没有..这就是我想的地方,嘿,为什么不制作一堆包含不同颜色的影片剪辑,并且在按下按钮时,这些影片剪辑中的一个被插入到另一个影片剪辑中,该影片剪辑将有 2 帧在用户选择的影片剪辑之间交换......只是,我不知道如何做到这一点,以及它是否可能与否..
我希望我以一种可以理解的方式解释了这一点.. 有很多电影剪辑哈哈..
无论如何,提前感谢任何可以提出解决方案的人:D
请给出一个 AS3 示例来说明您所解释的内容:D
【问题讨论】:
有很多方法可以为您的影片剪辑永久着色。您是在寻找使用时间线代码的最快方法还是最有效的方法?你已经设置好按钮了吗? 【参考方案1】:如果您想让它保持轻便和易于维护,您将需要使用代码而不是时间轴框架来获取颜色(这也将确保更快地执行闪光灯)。使用ColorTransform 很容易做到这一点。下面是我编写的封装该操作的函数;接受要着色的对象作为第一个参数,并接受颜色的十六进制值作为第二个参数。
function tint(obj:Object, color:uint):void
/* Colors the object using transform */
// Pull the individual primaries
var r:Number = (color >> 16 ) & 0xFF;
var g:Number = (color >> 8) & 0xFF;
var b:Number = color & 0xFF;
// Apply if valid
if (obj.hasOwnProperty("transform"))
obj.transform.colorTransform = new ColorTransform(0,0,0,1,r,g,b,0);
例如,假设您在舞台上有一个名为“box”的 DisplayObject,并且想要将其着色为亮蓝色,您需要执行以下操作:
tint(box, 0x1b8afc);
希望对您有所帮助。
【讨论】:
你可以这样做:var ct:ColorTransform = mc.transform.colorTransform; ct.color = 0xFF0000; mc.transform.colorTransform = ct;
【参考方案2】:
为每种颜色创建影片剪辑并放置在相同的 x、y 上。 现在让它们都可见=假,并使特定的 mc 为可见=真。使用 colortransform 来反映其他 mc 的变化。
【讨论】:
以上是关于如何在按钮单击时插入电影 - AS3的主要内容,如果未能解决你的问题,请参考以下文章