Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia galera...
Estou tentando criar uma "paleta" de cores para um editor de texto que estou fazendo(modificando). Estou usando um tutorial que tem esse código:
import flash.display.*;
import flash.geom.*;
var bitmap = new BitmapData(_root.mcCor._width, _root.mcCor._height);
bitmap.draw(_root.mcCor);
onMouseMove = function () {
if (_root.mcCor.hitTest(_xmouse, _ymouse, true)) {
var CorAtual:Number = bitmap.getPixel(_root.mcCor._xmouse, _root.mcCor._ymouse);
var CorTransf = new ColorTransform();
CorTransf.rgb = CorAtual;
_root.alvo.transform.colorTransform = CorTransf;
trace(CorAtual.toString(16));
}
};
Eu consegui alterar o código para AS3 e ficou assim:
var bitmap = new BitmapData(paleta_mc.width, paleta_mc.height);
bitmap.draw(paleta_mc);
var alteraCor = new ColorTransform();
function transformar(evt_cor:MouseEvent){
if(paleta_mc.hitTestPoint(mouseX, mouseY, true)){
var corAtual:Number = bitmap.getPixel(paleta_mc.mouseX, paleta_mc.mouseY);
alteraCor.color = corAtual;
trace(corAtual);
paleta_mc.alvo_mc.transform.colorTransform = alteraCor;
}
}
paleta_mc.addEventListener(MouseEvent.MOUSE_MOVE, transformar);
Dentro da "paleta_mc" eu tenho vários quadradinhos, cada um com uma cor(tbém tentei com uma imagem spectrum), quando passo o mouse sobre uma das cores o alvo recebe a cor do quadrado.
O problema é a àrea. Como se a paleta estivesse dividida em quatro quadrados diferentes, a única àrea que funciona é a que fica do lado direito inferior, os outros 3 lados não funciona. Tipo assim
1 2
4 3//Só aqui na parte três é que funciona.
Quando o passou o mouse sobre os outros quadrados ele consegua até identificar o movimento, não a cor.
Será que alguém sabe o problema?
Abraços
Carregando comentários...