如何在按钮单击 - AS3上插入电影

时间:2012-08-30 14:07:36

标签: actionscript-3 flash actionscript action

我现在在频闪网站上工作了一段时间http://strobepage.com/

我想让用户为频闪选择自己的颜色,这基本上意味着我可以轻松地覆盖更多的颜色组合,并占用更少的网站空间.. 到目前为止,我已经尝试制作2个影片剪辑,每种颜色一个..并将其作为一个实例和整个影片剪辑(MovieClip(colour1))来改变它的颜色..这是有效的,但仅限于此具体实例,当用户点击“下一步”进入ROOT电影的下一帧(显示交换的电影剪辑)时,电影剪辑已恢复到原始状态..

是否有可能通过按钮按下永久性地为影片剪辑着色...我似乎认为没有..这是我想的地方,嘿,为什么不制作一堆包含不同颜色的影片剪辑,以及在按钮按下时,其中一个影片剪辑被插入到另一个影片剪辑中,该影片剪辑将有2个框架在用户选择的影片剪辑之间进行交换...仅此,我不知道如何执行此操作,以及是否可能或不.. ..

我希望我以一种可以理解的方式解释了这一点..很多电影剪辑大声笑..

无论如何,提前感谢任何能够提出解决方案的人:D

请提供您正在解释的AS3示例:D

2 个答案:

答案 0 :(得分:0)

为每种颜色创建影片剪辑并放置在相同的x,y上。 现在让它们全部可见= false并使特定的mc变为visible = true。使用colortranform反映其他mc的更改。

答案 1 :(得分:0)

如果你想让它保持轻便和易于维护,你需要使用代码,而不是时间轴帧来获得你的颜色(这也将确保更快的表现频闪)。使用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);

希望有所帮助。