MouseOver

0 views
Skip to first unread message

Jean Mariano Duarte

unread,
Sep 28, 2009, 10:01:37 AM9/28/09
to "Undisclosed...@san-smtp-141.san.psi.br
 
    Amigos, bom dia e ótima semana a todos !
 
Tenho um canvas, dentro dele Tres filhos ( Image e Label e Text)
 
Criei  um MouseOver para mudar a cor do fundo...
 
Funciona.... mas somente quando o Over esta sobre o Canvas, quando coloco na Image,Label ou Text, ele considera
o MouseOut e volta a cor para o #FFFFF.
Preciso que fique no Container Canvas inteiro, não importa se dentro dele tem objetos.

mouseOver="color_over(event)"
mouseOut="color_out(event)"

public
var cvs_over:String = "#D5EAFF";
public var cvs_out:String = "#FFFFFF";

public

function color_over(evt:Event):void{
    evt.target.setStyle(
"backgroundColor",cvs_over);
}

public function color_out(evt:Event):void{
    evt.target.setStyle("backgroundColor",cvs_out);
}
 
 
OBS: Esse meu canvas é um component, que é repetido várias vezes na aplicação...
 
Obrigado
Jean Duarte
http://www.riaworks.com.br

Andre Coelho

unread,
Sep 28, 2009, 10:15:51 AM9/28/09
to fle...@googlegroups.com
Provavelemnte um caso de bubbles, não? Alguém pode elaborar?

André Coelho
DClick Web & Mobile Solutions

Sent from my iPhone

Rodrigo Pandini

unread,
Sep 28, 2009, 12:15:27 PM9/28/09
to fle...@googlegroups.com
troca por currentTarget

evt.currentTarget.setStyle("backgroundColor",cvs_out);

2009/9/28 Andre Coelho <andre...@gmail.com>

Gabriela Trindade Perry

unread,
Sep 28, 2009, 12:16:35 PM9/28/09
to flexdev
Sim, é "um caso de bubbles" mesmo.
Não conheço outra solução, além de verificar o tipo do objeto no
handler do evento (usar um "is" ou "typeof").

Gabriela Trindade Perry

unread,
Sep 28, 2009, 12:19:58 PM9/28/09
to flexdev
@Rodrigo
Provavelmente não vai funcionar....

Rodrigo Pandini

unread,
Sep 28, 2009, 12:22:05 PM9/28/09
to fle...@googlegroups.com
não sei se entendi muito bem o que ele queria fazer, mas por aqui funcionou.


2009/9/28 Gabriela Trindade Perry <gabrie...@hotmail.com>

@Rodrigo
Provavelmente não vai funcionar....


Clayton

unread,
Sep 28, 2009, 12:26:22 PM9/28/09
to fle...@googlegroups.com
O Rodrigo está certo. Assim irá funcionar.

2009/9/28 Rodrigo Pandini <rodrigo...@gmail.com>



--
Clayton Marques Pereira

Gabriela Trindade Perry

unread,
Sep 28, 2009, 12:39:51 PM9/28/09
to flexdev
E como ficou o código de vocês?

Jean Mariano Duarte

unread,
Sep 28, 2009, 12:39:53 PM9/28/09
to fle...@googlegroups.com
    Opa,
 
    Funcionou perfeitamente Rodrigo..
    
    Só por questão de estudo, você sabe explicar a diferença?
 
 
Atenciosamente
Jean Duarte
http://www.riaworks.com.br

Jean Mariano Duarte

unread,
Sep 28, 2009, 12:51:46 PM9/28/09
to fle...@googlegroups.com
Boa tarde Gabriela,

Ficou assim:


public var cvs_over:String =
"#D5EAFF";
public var cvs_out:String = "#FFFFFF";
public function color_over(evt:Event):void{

evt.currentTarget.setStyle("backgroundColor",cvs_over);
}

public function color_out(evt:Event):void{

evt.currentTarget.setStyle("backgroundColor",cvs_out);
}

Atenciosamente
Jean Duarte
http://www.riaworks.com.br

--------------------------------------------------
From: "Gabriela Trindade Perry" <gabrie...@hotmail.com>
Sent: Monday, September 28, 2009 1:39 PM
To: "flexdev" <fle...@googlegroups.com>
Subject: [flexdev] Re: MouseOver

>

Gabriela Trindade Perry

unread,
Sep 28, 2009, 12:57:35 PM9/28/09
to flexdev
No Flash não funciona, e se comporta exatamente do jeito que o Jean
falou... Por isso achei que não haveria porque funcionar no Flex.

//dois MovieClips, um chamado outter que contém um chamado inner...
//o outter seria o canvas... o inner o image
outter.addEventListener(MouseEvent.MOUSE_OVER, color_over);
outter.addEventListener(MouseEvent.MOUSE_OUT, color_out);

function color_over(evt:Event):void{
trace("evt.type: "+evt.currentTarget.name)
}

function color_out(evt:Event):void{
trace("evt.type: "+evt.currentTarget.name)
}

A saída (no Flash) ficou:
mouseOver: outter //mouse sobre outter, o container
mouseOut: outter //mouse sobre inner, dentro do container
mouseOver: outter //disparado imediatamente depois do mouseOut

Isso provavelmente significa que a propagação do evento deve estar
sendo controlada pelo canvas... Senão, qual a outra explicação?
Reply all
Reply to author
Forward
0 new messages