Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Frank Junior

Color Picker - Simulador de cores

Recommended Posts

Então pessoal estou desenvolvendo um simulador de cores para um site de adesivos....

O simulador é o seguinte cor do fundo pode ser qualquer uma, e cor do adesivo sao 17 cores, fiz um porem ele esta imperfeito porque quando clico nas cores pra pintar ele pinta so em 4 cores aqui está o link do simulador que criei:

http://adesivosvisual.com.br/colorpickerfrankjunior.swf

 

segue o codigo abaixo, peguei um codigo meio pronto e adaptei as minhas necessidades, porem tem um error ai... acho que logo no inicio porem nao consegui detectar...

// an Array with the instance of the buttons
var btts:Array = [b_red, b_green, b_yellow, b_blue, b_white, b_branco, b_brown, b_purple, b_9, b_10, b_11, b_12, b_13, b_14, b_15, b_16, b_17];

// sets an object with colors for each button
var set_colors:Object = {'b_red':0xFF0000, 'b_green':0x00FF00, 'b_yellow':0x0000FF, 'b_blue':0xFF0099, 'b_white':0x006600, 'b_':0xFFFFFF, 'b_brown':0xFF0000, 'b_purple':0x000000, 'b_9':0x990000, 'b_10':0x000066, 'b_11':0xFFFF00, 'b_12':0xFFCC00, 'b_13':0x993300, 'b_14':0xCCCCCC, 'b_15':0x666666, 'b_16':0x999999, 'b_17':0xFFFFCC};

// sets a ColorTransform object
var obj_color:ColorTransform = new ColorTransform();

// traverse the array with button instances
for(var i:int=0; i<btts.length; i++) {
	// set a color for each button
  obj_color.color = set_colors[btts[i].name];
  btts[i].transform.colorTransform = obj_color;

  // register CLICK event for each button
  btts[i].addEventListener(MouseEvent.CLICK, changeColor);
}

// function called by CLICK events
function changeColor(evt:Event):void
{
	// get the instance name of the clicked button
	var b_name = evt.target.name;

  // set and change the square (sqr) color
	obj_color.color = set_colors[b_name];
	sqr.transform.colorTransform = obj_color;
}

//Muda cor Fundo
import fl.events.ColorPickerEvent;
import flash.geom.ColorTransform;

myColorPicker.selectedColor = 0xffffff;

var colorInfo:ColorTransform = myStar.transform.colorTransform;

myColorPicker.addEventListener (ColorPickerEvent.CHANGE, colorChanged);

function colorChanged (e:ColorPickerEvent) :void {
												  
	colorInfo.color = myColorPicker.selectedColor;
    
	myStar.transform.colorTransform = colorInfo;
    
	myCurrentColor.text = myColorPicker.hexValue;
}

despois que eu tiver arrumado esse simulador, queria arrumar algum jeito de nao fazer um SWF para cada arquivo porque fica ruim e complicado na hr de atualizar, tipo cada adesivo que coloco no site tenho que criar um arquivo SWF isso é muito cansativo, creio eu que existe algum outro jeito.

 

desde já muito obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique cada nome de instância que você atribuiu aos MovieClips pois o problema está nos nomes do MCs..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então meu amigo sou cru em flash, teria como me dar uma luz sobre isso mais clara um pouc?! pois até então pra mim está correto, até mudei os nomes do MC depois mas nada mudou...

 

muito obg pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei novamente seu código e comigo funcionou... A parte que testei foi essa:

var btts:Array = [b_red, b_green, b_yellow, b_blue, b_white, b_branco, b_brown, b_purple, b_9, b_10, b_11, b_12, b_13, b_14, b_15, b_16, b_17];

// sets an object with colors for each button
var set_colors:Object = {'b_red':0xFF0000, 'b_green':0x00FF00, 'b_yellow':0x0000FF, 'b_blue':0xFF0099, 'b_white':0x006600, 'b_':0xFFFFFF, 'b_brown':0xFF0000, 'b_purple':0x000000, 'b_9':0x990000, 'b_10':0x000066, 'b_11':0xFFFF00, 'b_12':0xFFCC00, 'b_13':0x993300, 'b_14':0xCCCCCC, 'b_15':0x666666, 'b_16':0x999999, 'b_17':0xFFFFCC};

// sets a ColorTransform object
var obj_color:ColorTransform = new ColorTransform();

// traverse the array with button instances
for(var i:int=0; i<btts.length; i++) {
    // set a color for each button
  obj_color.color = set_colors[btts[i].name];
  btts[i].transform.colorTransform = obj_color;

  // register CLICK event for each button
  btts[i].addEventListener(MouseEvent.CLICK, changeColor);
}

// function called by CLICK events
function changeColor(evt:Event):void
{
    // get the instance name of the clicked button
    var b_name = evt.target.name;

  // set and change the square (sqr) color
    obj_color.color = set_colors[b_name];
    sqr.transform.colorTransform = obj_color;
}

Aonde você está atribuindo os nomes desse MCs?? Se você não conseguir, poste o seu .fla para download que dou uma olhada para você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua:

var b_name = evt.target.name;

Por:

var b_name = evt.currentTarget.name;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Roger Muito obg, tu é o cara.

 

deixa eu te perguntar se nao for abusar muito da sua paciência... gostaria de colocar um quadro com escrita;;; tipo vc viu que tenho 17 cores, quero que quando o cliente clicar numa cor, que aparece o nome da cor.,

 

exemplo faço um quadrinho em algum local, quando for clicado no preto, aparece preto escrito no quadro...

 

Muito obg mesmo pela força!

 

mesmo se nao souber essa ja ajudou demais brother. muito obg!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.