在Flash CS4 AS3.0中,如何单击更改形状填充颜色?

| 我正在为幼儿建立活动,他们单击调色板中的颜色(鼠标光标将是画笔),然后单击我将分层的各种形状来创建图片。 根据他们选择的颜色,他们应该能够用该颜色填充形状。通过改变想法等方式改变颜色。 如果使用更早的AS版本,我没有任何问题。     
已邀请:
        您可以使用flash.filters.ColorMatrixFilter-链接的文档中有示例。 通过为Tweener的ColorShortcuts赋予also0 easy属性一个十六进制的颜色值,也很容易做到这一点。通过有选择地为所需的
time
属性分配非零值,该方法还可以使您轻松地淡入颜色。
Tweener.addTween(myShape, {time: 0.0, _Color: 0xFF0000});
请记住,任何位图滤镜(例如阴影)或形状的任何子代(如果是sprite)也会改变颜色。尽管使用容器来分离形状的每个元素一样容易。 [编辑]可以使用ColorTransform对象轻松更改显示对象的颜色,而不必像我之前匆忙建议的那样使用Tweener或相当复杂的ColorMatrixFilter。这也是AS3中最常见的方法。这是一个例子:
import flash.geom.ColorTransform;

var myShape:Shape = new Shape();
myShape.graphics.beginFill(0xFF0000, 1.0);
myShape.graphics.drawRect(0, 0, 100, 100);
myShape.graphics.endFill();

addChild(myShape);

var myColorTransform:ColorTransform = new ColorTransform;
myColorTransform.color = 0x0000FF;
myShape.transform.colorTransform = myColorTransform;
上面的代码绘制了一个红色矩形,将其添加到舞台上,然后使用ColorTransform对象将其颜色更改为蓝色。     
        我必须警告您,使此功能与“画图”的工作方式实际上很难。 我想让您的整个画布变成4英镑。 资源:
Bitmap
BitmapData
(这将是关键方法) 绘制形状后,使用
fillRect()
方法。对于油漆桶之类的工具(如油漆),请看
floodFill()
方法。 我不太确定如何创建油漆桶工具,但我的想法是考虑使用一个循环,使用ѭ9来检查单击的像素周围每个像素的颜色,然后再使用ѭ10。改变每个的颜色。您将必须创建一个方法,该方法返回所有具有特定颜色且未被另一种颜色遮挡的像素的数组(即,这样您就不必使用颜料桶并更改所有像素的颜色在画布上)。 也可能有用于此类内容的库。 希望这能使您走上正确的道路。     
        或者只是使用过滤器。见
DisplayObject.filters
    

要回复问题请先登录注册