Flash CS4 ActionScript 2.0 - 使用 as2 更改影片剪辑颜色



我是闪存的新手 - 有点。 我不久前开始了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);
        }

谢谢!

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

如果是这样的话,每次你在两个屏幕之间切换时,你对角色所做的所有更改都会恢复:在Flash中,每次从新关键帧实例化或读取影片剪辑时,就像是使用的新影片剪辑一样。因此,在其内部所做的所有更改(颜色、内部影片剪辑的位置等(都将恢复到其原始状态(Flash pro 库项目的第一帧中的状态(。

因此,为了使更改持久,您应该将colorValue变量(每次更改时(保存在可以从swf中的任何位置访问的地方(类似于类中的静态变量?甚至是全局/_root变量,即使它真的很丑陋^^(,并在每次在不同屏幕之间切换时将该颜色重新应用于您的角色。

最新更新