Приветствую всех.
Я очень плохо знаком с AS3 (и Flash CS4), и у меня возникла проблема.У меня есть этот проект, в котором пользователь динамически рисует свою подпись с помощью мыши в области, а затем, в другом фрейме и после того, как подпись нарисована, он может изменить цвет подписи, нажав несколько кнопок, каждая из которых имеет свой цвет.
Я использую это для захвата подписи в другом кадре:
Кнопка, которая вызывает событие захвата:
//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) также меняет цвет ... Что я делаю не так?
Спасибо ввперед.