2012-05-15 33 views
0

我是新来的flash - 排序。我刚开始使用Flash,但在两年内没有触及它。也就是说,我习惯于使用AS2.0,并开始制作2.0版游戏。我试图实现一个屏幕,用户可以从一个典型的颜色渐变中选择字符皮肤和头发的颜色。我已经设置好了,以便肤色确实会根据他们点击的内容改变颜色。Flash CS4 ActionScript 2.0 - 使用as2更改MovieClip颜色

但是,它不保留这种方式。要进入这个屏幕,有一个带有角色实例的主菜单。在这个角色里,每个肢体都被分成了自己的动画片段。每个肢体都由一些阴影,轮廓和皮肤的动画片组成。在颜色更改屏幕上,我将每个肢体分离出来并给出一个实例名称。然后,在每个肢体中,我给了皮肤部分一个实例名称。然后我改变皮肤的颜色,但在返回到主菜单后,皮肤已经恢复到原来的颜色。如果我使用该按钮返回到角色外观屏幕,则外观将恢复为其原始颜色,而不是用户选择的那个。 我想我该如何实现这一点,使颜色选择坚持?

这里是我当前的代码:

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); 
     } 

谢谢!

回答

0

我想通过阅读你写的内容,在主菜单和字符外观屏幕中使用不同的MovieClip实例。

如果是这种情况,每次在两个屏幕之间切换时,您对该角色进行的所有更改都会恢复:在Flash中,每当一个MovieClip被实例化或从新关键帧获取时,它就像是使用了新的MovieClip。 因此,它内部所做的所有更改(颜色,内部动画片段的位置等)都会恢复到其原始状态(它在Flash专业图库项目的第一帧中的状态)。因此,为了使更改持久化,您应该将colorValue变量(每次更改后)保存在swf中的任何位置(类似于静态变量,甚至是全局/ _root变量,甚至如果它非常丑陋^^),并且每次在不同的屏幕之间切换时,都会将该颜色重新应用于角色。

相关问题