【发布时间】:2011-02-15 18:21:57
【问题描述】:
大家好。
我对 AS3(和 Flash CS4)非常陌生,但遇到了问题。我有这个项目,用户在一个区域上用鼠标动态绘制她的签名,然后在另一个框架上,在绘制签名后,他可以通过单击一些按钮来更改签名的颜色,每个按钮都有不同的颜色。
我正在使用它来将签名捕获到另一个帧:
-
触发捕获事件的Button:
//targetMC is an MC to where the signature will be copied function buttonClick(event:MouseEvent):void{ capture(drawingBoard_mc, _targetMC); drawGraphics.clear(); gotoAndStop(5); }; -
功能
function capture(target:DisplayObject, _target:MovieClip):void { var relative:DisplayObject = target.parent; var rect:Rectangle = target.getBounds(relative); var bitmapData:BitmapData = new BitmapData(rect.width + PIXEL_BUFFER * 2, rect.height + PIXEL_BUFFER * 2); bitmapData.draw(relative, new Matrix(1, 0, 0, 1, -rect.x + PIXEL_BUFFER, -rect.y + PIXEL_BUFFER)); var byteArray:ByteArray; var jpgEncoder:JPGEncoder = new JPGEncoder(JPG_QUALITY_DEFAULT); byteArray = jpgEncoder.encode(bitmapData); var ldr:Loader = new Loader(); ldr.name = "signature"; ldr.loadBytes(byteArray); //target is target mc where the signature will be copied into _target.addChild(ldr as DisplayObject); }
它完美地复制了签名。
问题出在目标 5 上,我有 2 个按钮来更改颜色:
//Color 1
line_bt1.buttonMode = true;
line_bt1.mouseChildren = false;
line_bt1.addEventListener(MouseEvent.MOUSE_DOWN, line_bt1Over);
//Color 2
line_bt2.buttonMode = true;
line_bt2.mouseChildren = false;
line_bt2.addEventListener(MouseEvent.MOUSE_DOWN, line_bt2Over);
function line_bt1Over(e:Event){
var myMC:DisplayObject = DisplayObject(_targetMC.getChildByName("signature") as DisplayObject);
changeColor(myMC, 0xCCCCCC);
changeColor(myMC, 0xCCCCCC);
}
function line_bt2Over(e:Event){
var myMC:DisplayObject = DisplayObject(_targetMC.getChildByName("signature") as DisplayObject);
changeColor(myMC, 0x000000);
changeColor(myMC, 0x000000);
}
function changeColor(object:DisplayObject, color:Number){
var colorchange:ColorTransform = new ColorTransform();
colorchange.color = color;
object.transform.colorTransform = colorchange;
}
我的问题是 _targetMC 和签名孩子都改变了颜色,我只想要孩子/签名。 :(
我正在使用var myMC:DisplayObject = DisplayObject(_targetMC.getChildByName("signature") as DisplayObject); 访问签名子节点,但容器 mc (_targetMC) 也会改变颜色...我做错了什么?
提前致谢。
【问题讨论】:
标签: flash actionscript-3 reference colortransform