existe alguma maneira de fazer o meu cursor virar maozinha (cursor.gotoAndStop('over')), sem precisar por isso em todos os botoes?
pq esse cursor vai estar em um menu, que vai abrir outros swfs por cima, mas o cursor tem q virar maozinha se for link embaixo dele
e eu nao poderia por em cada botao um eventlistener de rollover do mouse, entendem?
tem como fazer isso? existe alguma funcao a lá objects under point pra saber se o objeto abaixo do mouse é clicavel?
obrigado
[]'s
Publicidade
|
|
Page 1 of 1
AS3 ajuda! | mouse over
#2
Posted 24 April 2009 - 06:15 PM
Qualquer objeto derivado de Sprite contém a propriedade buttonMode, basta defini-la como true e pronto.
Abraço
CODE
myMovie.buttonMode = true;
Abraço
#3
Posted 24 April 2009 - 08:28 PM
vc nao entendeu!
eu tenho um movieclip que está servindo de cursor pra mim
só que seguinte, eu tenho meu movieclip cursor e no frame 'normal' esta a setinha e no frame 'over' esta a maozinha
procurei e procurei e soh achei uma maneira de fazer o mouse virar maozinha quando esta em cima de algo clicavel
botando um eventlistener para cada algo clicavel q eu quero q faca isso
o q eu quero saber é se existe alguma maneira de identificar q o objeto abaixo do mouse é clicavel, que o objeto abaixo do mouse possui a propriedade buttonMode = true; e assim, dentro da funcao mouseMoveHandler eu posso botar para que se o objeto é clicavel, cursor.gotoAndStop('over') se nao, cursor.gotoAndStop('normal')
eu tenho um movieclip que está servindo de cursor pra mim
CÓDIGO
//tentando cursor
Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler);
cursor.mouseEnabled = false;
cursor.mouseChildren = false;
function mouseLeaveHandler(e:MouseEvent) {
cursor.visible = false;
};
function mouseMoveHandler(evt:MouseEvent):void
{
// whenever the mouse moves, place the cursor in the same spot
cursor.visible = true;
cursor.x = evt.stageX;
cursor.y = evt.stageY;
setChildIndex(cursor, numChildren - 1);
evt.updateAfterEvent();
};
//cursor
Mouse.hide();
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler);
cursor.mouseEnabled = false;
cursor.mouseChildren = false;
function mouseLeaveHandler(e:MouseEvent) {
cursor.visible = false;
};
function mouseMoveHandler(evt:MouseEvent):void
{
// whenever the mouse moves, place the cursor in the same spot
cursor.visible = true;
cursor.x = evt.stageX;
cursor.y = evt.stageY;
setChildIndex(cursor, numChildren - 1);
evt.updateAfterEvent();
};
//cursor
só que seguinte, eu tenho meu movieclip cursor e no frame 'normal' esta a setinha e no frame 'over' esta a maozinha
procurei e procurei e soh achei uma maneira de fazer o mouse virar maozinha quando esta em cima de algo clicavel
botando um eventlistener para cada algo clicavel q eu quero q faca isso
o q eu quero saber é se existe alguma maneira de identificar q o objeto abaixo do mouse é clicavel, que o objeto abaixo do mouse possui a propriedade buttonMode = true; e assim, dentro da funcao mouseMoveHandler eu posso botar para que se o objeto é clicavel, cursor.gotoAndStop('over') se nao, cursor.gotoAndStop('normal')
#4
Posted 25 April 2009 - 01:01 AM
Da maneira que quer eu não vejo algo possível. O que você pode fazer é usar um addEventListener usando o evento de Mouse MOUSE_OVER, que é o evento relativo ao onRollOver para todos os seus botões, passando sempre a mesma função. Dentro dessa função você verifica se o alvo tem o buttonMode definido como true. Exemplo:
Onde mc1, mc2, mc3 e mc4 são as instancias do seus MovieClips ou botões.
[]s
CÓDIGO
mc1.buttonMode = true;
mc2.buttonMode = false;
mc3.buttonMode = false;
mc4.buttonMode = true;
mc1.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
mc2.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
mc3.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
mc4.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
function mcOver(event:MouseEvent):void {
if(event.target.buttonMode == true) {
trace("sim");
} else {
trace("Não");
}
}
mc2.buttonMode = false;
mc3.buttonMode = false;
mc4.buttonMode = true;
mc1.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
mc2.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
mc3.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
mc4.addEventListener(MouseEvent.MOUSE_OVER, mcOver);
function mcOver(event:MouseEvent):void {
if(event.target.buttonMode == true) {
trace("sim");
} else {
trace("Não");
}
}
Onde mc1, mc2, mc3 e mc4 são as instancias do seus MovieClips ou botões.
[]s
#5
Posted 25 April 2009 - 10:56 AM
mas a questao é:
esse cursor esta em um menu.swf
esse menu.swf carrega outros 7 submenus, e esses 7 submenus carregam outros 5 swfs diferentes
entao em cada um desses 35 swf, eu tenho q por em CADA movieclip o codigo de rollover do mouse?
era justamente isso q eu queria evitar, até pq vai ficar uma confusao de parents nesses movieclips dentro dos swfs carregados
nossa, num é possivel q até hj a adobe nao tenha pensado nisso... tem tanto flash com cursor custom e gente, tinha q ter uma maneira mais facil de confiurar isso
alguma maneira de checar se o mouse original do windows está no modo maozinha, ai muda o cursor custom, se nao, volta pro cursor normal...
ou checar o getobjectunderpoint(mouse.x, mouse.y) e saber se ele possui a propriedade button mode...
enfim, bad :/
esse cursor esta em um menu.swf
esse menu.swf carrega outros 7 submenus, e esses 7 submenus carregam outros 5 swfs diferentes
entao em cada um desses 35 swf, eu tenho q por em CADA movieclip o codigo de rollover do mouse?
era justamente isso q eu queria evitar, até pq vai ficar uma confusao de parents nesses movieclips dentro dos swfs carregados
nossa, num é possivel q até hj a adobe nao tenha pensado nisso... tem tanto flash com cursor custom e gente, tinha q ter uma maneira mais facil de confiurar isso
alguma maneira de checar se o mouse original do windows está no modo maozinha, ai muda o cursor custom, se nao, volta pro cursor normal...
ou checar o getobjectunderpoint(mouse.x, mouse.y) e saber se ele possui a propriedade button mode...
enfim, bad :/
#6
Posted 25 April 2009 - 05:15 PM
Você pode criar uma classe base e associá-la aos elementos que tu deseja que tenham este comportamento.
Desta forma, qualquer elemento que extender a classe BaseButtonMenu terá o cursor personalizado.
O objeto OverCursor é o linkage do seu MovieClip de cursor na biblioteca.
Abraço
CODE
/**
* © 2009 - mozartpetter.com
*/
package app.menu
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
/**
* BaseMenuButton Class
*
* @author Mozart Petter (contato@mozartpetter.com)
*/
public class BaseMenuButton extends Sprite
{
/**
* @private
*/
private var _cursor:MovieClip = null;
/**
* Cria uma nova instancia de BaseMenuButton.
*/
public function BaseMenuButton()
{
super();
this.addEventListener(Event.ADDED_TO_STAGE, this.handleAddedToStage);
}
//---------------------------------------------------------------------------------------------------
//
// Protected Methods
//
//---------------------------------------------------------------------------------------------------
/**
* Configuracoes iniciais.
*/
protected function setup():void
{
// Criando novo cursor.
this._cursor = new OverCursor();
// Adicionando cursor ao palco.
this.addChild(this._cursor);
// Escondendo cursor.
this._cursor.visible = false;
// Adicionando evento ROLL_OVER.
this.addEventListener(MouseEvent.ROLL_OVER, this.handleRollOver);
}
/**
* Oculta o cursor personalizado.
*/
protected function hideMouseCursor():void
{
// Ocultando cursor personalizado.
this._cursor.visible = false;
// Exibindo cursor do mouse.
Mouse.show();
}
/**
* Define a posição do cursor.
*/
protected function setCursorPosition():void
{
this._cursor.x = this.mouseX;
this._cursor.y = this.mouseY;
}
/**
* Exibe o cursor personalizado.
*/
protected function showMouseCursor():void
{
// Exibindo cursor personalizado.
this._cursor.visible = true;
// Escondendo cursor do mouse.
Mouse.hide();
}
//---------------------------------------------------------------------------------------------------
//
// Private Methods
//
//---------------------------------------------------------------------------------------------------
/**
* @private
* Handler do evento ADDED_TO_STAGE.
*
* @param event Objeto Event.
*/
private function handleAddedToStage(event:Event):void
{
this.setup();
}
/**
* @private
* Handler do evento MOUSE_MOVE.
*
* @param event Objeto MouseEvent.
*/
private function handleMouseMove(event:MouseEvent):void
{
// Posicionando cursor.
this.setCursorPosition();
}
/**
* @private
* Handler do evento ROLL_OUT.
*
* @param event Objeto MouseEvent.
*/
private function handleRollOut(event:MouseEvent):void
{
// Escondendo cursor.
this.hideMouseCursor();
this.removeEventListener(MouseEvent.ROLL_OUT, this.handleRollOut);
this.removeEventListener(MouseEvent.MOUSE_MOVE, this.handleMouseMove);
this.addEventListener(MouseEvent.ROLL_OVER, this.handleRollOver);
}
/**
* @private
* Handler do evento ROLL_OVER.
*
* @param event Objeto MouseEvent.
*/
private function handleRollOver(event:MouseEvent):void
{
// Exibindo cursor.
this.showMouseCursor();
// Posicionando cursor.
this.setCursorPosition();
this.removeEventListener(MouseEvent.ROLL_OVER, this.handleRollOver);
this.addEventListener(MouseEvent.MOUSE_MOVE, this.handleMouseMove);
this.addEventListener(MouseEvent.ROLL_OUT, this.handleRollOut);
}
}
}
* © 2009 - mozartpetter.com
*/
package app.menu
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
/**
* BaseMenuButton Class
*
* @author Mozart Petter (contato@mozartpetter.com)
*/
public class BaseMenuButton extends Sprite
{
/**
* @private
*/
private var _cursor:MovieClip = null;
/**
* Cria uma nova instancia de BaseMenuButton.
*/
public function BaseMenuButton()
{
super();
this.addEventListener(Event.ADDED_TO_STAGE, this.handleAddedToStage);
}
//---------------------------------------------------------------------------------------------------
//
// Protected Methods
//
//---------------------------------------------------------------------------------------------------
/**
* Configuracoes iniciais.
*/
protected function setup():void
{
// Criando novo cursor.
this._cursor = new OverCursor();
// Adicionando cursor ao palco.
this.addChild(this._cursor);
// Escondendo cursor.
this._cursor.visible = false;
// Adicionando evento ROLL_OVER.
this.addEventListener(MouseEvent.ROLL_OVER, this.handleRollOver);
}
/**
* Oculta o cursor personalizado.
*/
protected function hideMouseCursor():void
{
// Ocultando cursor personalizado.
this._cursor.visible = false;
// Exibindo cursor do mouse.
Mouse.show();
}
/**
* Define a posição do cursor.
*/
protected function setCursorPosition():void
{
this._cursor.x = this.mouseX;
this._cursor.y = this.mouseY;
}
/**
* Exibe o cursor personalizado.
*/
protected function showMouseCursor():void
{
// Exibindo cursor personalizado.
this._cursor.visible = true;
// Escondendo cursor do mouse.
Mouse.hide();
}
//---------------------------------------------------------------------------------------------------
//
// Private Methods
//
//---------------------------------------------------------------------------------------------------
/**
* @private
* Handler do evento ADDED_TO_STAGE.
*
* @param event Objeto Event.
*/
private function handleAddedToStage(event:Event):void
{
this.setup();
}
/**
* @private
* Handler do evento MOUSE_MOVE.
*
* @param event Objeto MouseEvent.
*/
private function handleMouseMove(event:MouseEvent):void
{
// Posicionando cursor.
this.setCursorPosition();
}
/**
* @private
* Handler do evento ROLL_OUT.
*
* @param event Objeto MouseEvent.
*/
private function handleRollOut(event:MouseEvent):void
{
// Escondendo cursor.
this.hideMouseCursor();
this.removeEventListener(MouseEvent.ROLL_OUT, this.handleRollOut);
this.removeEventListener(MouseEvent.MOUSE_MOVE, this.handleMouseMove);
this.addEventListener(MouseEvent.ROLL_OVER, this.handleRollOver);
}
/**
* @private
* Handler do evento ROLL_OVER.
*
* @param event Objeto MouseEvent.
*/
private function handleRollOver(event:MouseEvent):void
{
// Exibindo cursor.
this.showMouseCursor();
// Posicionando cursor.
this.setCursorPosition();
this.removeEventListener(MouseEvent.ROLL_OVER, this.handleRollOver);
this.addEventListener(MouseEvent.MOUSE_MOVE, this.handleMouseMove);
this.addEventListener(MouseEvent.ROLL_OUT, this.handleRollOut);
}
}
}
Desta forma, qualquer elemento que extender a classe BaseButtonMenu terá o cursor personalizado.
O objeto OverCursor é o linkage do seu MovieClip de cursor na biblioteca.
Abraço
#7
Posted 26 April 2009 - 01:15 PM
de qualquer forma vou ter q ir em todos os swfs do negocio e por em todos os movieclips que possuem rollover do mouse a classe?
da no mesmo fazer isso ou adcionar o eventlistener, o q eu queria evitar é ter que por o codigo em todos os movieclips, achava que poderia ter uma maneira mais inteligente de fazer isso
pensei no objectsunderpoint que da os objetos que estao abaixo do ponto, o problema seria verificar o buttonmode desses objetos, nao funciona aqui
enfim, obrigado
da no mesmo fazer isso ou adcionar o eventlistener, o q eu queria evitar é ter que por o codigo em todos os movieclips, achava que poderia ter uma maneira mais inteligente de fazer isso
pensei no objectsunderpoint que da os objetos que estao abaixo do ponto, o problema seria verificar o buttonmode desses objetos, nao funciona aqui
enfim, obrigado
#8
Posted 26 April 2009 - 09:24 PM
Na verdade Leo, isso sempre vai depender único e exclusivamente da estrutura da tua aplicação. Se você tiver, por exemplo, 1 tipo de objeto para os itens do Menu, seria apenas 1 MovieClip a ser alterado...
Se tiver um botão específico, dentro de um determinado conteúdo, e desejasse o mesmo efeito, bastaria importar a classe com o cursor na classe do botão em questão.
Vai muito da estrutura cara.
Se eu puder ajudar em mais alguma coisa, avise.
Abraço
Se tiver um botão específico, dentro de um determinado conteúdo, e desejasse o mesmo efeito, bastaria importar a classe com o cursor na classe do botão em questão.
Vai muito da estrutura cara.
Se eu puder ajudar em mais alguma coisa, avise.
Abraço
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Governo ajuda pequena empresa a exportar TI
IDG Now! - Mercado |
Notícias |
TiTi Celestino
|
|
|
|
O Mouse que Ri
|
Notícias |
Notícias
|
|
|
|
Dúvida com rotacionar objeto em 3D, ajuda por favor!
Dúvida com AS3 para usar movimento de rotação nos eixos |
Desenvolvimento de Jogos |
piramutaba
|
|
|
|
Tadacip Cipla no perscription overnight.Sale Tadacip Cipla in Orlando
|
Notícias | Guest_inetryconydot_* |
|
|
|
Contrariando o governo, emissoras dos EUA vão interromper sinal analógico de TV
|
Notícias |
Notícias
|
|
|
|
Processo para remover dados pessoais armazenados em sites é lento e caro
|
Notícias |
Notícias
|
|
|
|
Razer lança mousepad de alto desempenho para games
|
Notícias |
Notícias
|
|
|
|
Governo define regras para produção de tablets no Brasil
|
Notícias |
Notícias
|
|
Publicidade
|
|

Help













