Flash CS4 ActionScript 2.0 - 使用as2更改MovieClip颜色

时间:2012-05-15 17:13:48

标签: flash actionscript-2 movieclip

我是闪光灯的新手 - 有点儿。我刚刚开始使用Flash,但是在两年内没有触及它。也就是说,我习惯使用AS2.0并开始在2.0中制作游戏。我正在尝试实现一个屏幕,用户可以从中选择典型颜色渐变的字符皮肤和头发颜色。我设置它,以便肤色确实根据点击的内容改变颜色。

然而,它并不是这样。要进入此屏幕,有一个主菜单,其中包含该角色的实例。在角色内,每个肢体被分成自己的动画片段。每个肢体都由一些阴影,一个轮廓和一个只有皮肤的动画片段组成。在颜色更改屏幕上,我将每个肢体分开并给出实例名称。然后,在每个肢体中,我给皮肤部分一个实例名称。然后我改变了皮肤的颜色,但是在返回主菜单后,皮肤又恢复了原来的颜色。如果我使用该按钮返回到角色外观屏幕,则皮肤将恢复其原始颜色,而不是用户选择的颜色。 我想我怎么能实现这个以便颜色选择坚持?

这是我目前的代码:

import flash.display.BitmapData;
        function changeColor(clip, theColor) {
            var myColor = new Color(clip);
            myColor.setRGB(theColor);
        }
        mc_colorPicker._visible = true;
        mc_colorPicker.colors.onPress = function() {
    srcMC = mc_colorPicker.colors;
    var colorBitmap:BitmapData = new BitmapData(srcMC._width, srcMC._height, true, 
        0x00000000);
    colorBitmap.draw(srcMC);
    colorValue = "0x"+colorBitmap.getPixel(srcMC._xmouse, srcMC._ymouse).toString(16);
    changeColor(RULeg.skin, colorValue);
        }

谢谢!

1 个答案:

答案 0 :(得分:0)

我想通过阅读您所写的内容,您可以在主菜单和角色外观屏幕中使用不同的MovieClip实例。

如果是这种情况,每次在两个屏幕之间切换时,你在角色上所做的所有更改都会被恢复:每当一个MovieClip被实例化或从一个新的关键帧中获取时,在Flash中,它就像是一个使用了新的MovieClip。 因此,在其中进行的所有更改(颜色,内部动画片段的位置等)都将恢复为其原始状态(它在Flash专业版库项目的第一帧中的状态)。

因此,要使更改变得持久,您应该将colorValue变量(每次更改)保存在swf中的任何位置(类似于类中的静态变量?甚至是全局/ _root变量),即使它非常丑陋^^),并且每次在不同的屏幕之间切换时,都会将这种颜色重新应用到角色中。