如何解决在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,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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。