Flasher12 2 Denunciar post Postado Setembro 24, 2013 Olá, eu estou com um problema no action script 3.0 do Flash cs4, sabendo que : Mouse.hide(); addEventListener(Event.ENTER_FRAME,movecursor); function movecursor(event:Event){ cursor.x=mouseX; cursor.y=mouseY; } é para personalizar o mouse e : addEventListener(Event.ENTER_FRAME, checacolisao); function checacolisao(event:Event) { if (cursor.hitTestObject(colisao)) { var meutexto:TextField = new TextField(); meutexto.text = "GOOOL"; meutexto.x=250; meutexto.y=350; addChild(meutexto); } } para detectar a colisão e aparecer a mensagem "GOOOL", eu queria saber como ficaria para quando detectar a colisão ir para outro frame de outra camada ou qualquer coisa do tipo... Aguardo respostas de alguém :D obg. Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Martinelli Saab 0 Denunciar post Postado Setembro 25, 2013 Olá flasher, vou por um código pra ficar mais fácil de entender if (pecaatual.sensor.hitTestPoint(pecaatual.x,pecaatual.y,true)) { pecaatual.mouseEnabled = false; TweenLite.to(pecaatual, 0.3, {x: pecaatual.sensor.x, y: pecaatual.sensor.y}); nesse meu caso é um quebra cabeça, mas a comparação é a mesma, esse sensor é um filho que esta dentro dos meus MC, é ele quem eu comparo com o encaixe ou no seu caso com a posição da rede, se o meu sensor colidir com o pecaatual(que não precisa ser dinâmico no seu caso, pode ser a sua rede) então ele não vai mais deixar eu clicar na peça, e vai encaixa-la em cima da peça atual. o que interessa pra você no caso é só o if, dai você pode partir pra um gotoAndStop, ou o que seja. Espero ter ajudado embaixo esta o código todo, comentado para servir de pesquisa Abraço import flash.events.MouseEvent; import flash.display.MovieClip; import com.greensock.TweenLite; import com.greensock.*; import com.greensock.easing.*; import flash.media.Sound; //Tocar musica de fundo, repetindo do segundo 1 por 100 vezes var musicadefundo:Sound = Sound (new musicafundo()); musicadefundo.play(1000, 10); var musicamola:Sound = Sound(new mola()); //Declaração das variaveis var cont:uint = 0; var qtdpecas:uint = 3; var pecaatual:MovieClip; //chamada da função de configuração inicio() //função de configuração function inicio():void{ //laço para fazer as 3 peças com apenas 1 função for (var i:uint=0; i<qtdpecas; i++){ this["peca" + i].alpha = 0.5; //armazena a posição original da peça this["peca" + i].posX = this["peca" + i].x; this["peca" + i].posY = this["peca" + i].y; //dar valor ao sensor this["peca" + i].sensor = this["sensor" + i]; //tratar peca como botão (aparecer a mãozinha no lugar do cursos) this["peca" + i].buttonMode = true; //ignora os filhos da peca this["peca" + i].mouseChildren = false; //adicionando ouvintes this["peca" + i].addEventListener(MouseEvent.MOUSE_DOWN, onPecaMouseDown,false, 0, true); } } //tratamento do mouse function onPecaMouseDown(e:MouseEvent):void{ //armazenar peca atual pecaatual = MovieClip(e.currentTarget); //adiciona o ouvinte pecaatual.addEventListener(MouseEvent.MOUSE_UP, onPecaMouseUp, false, 0, true); //começa a dragar(arrastar) pecaatual.startDrag(true); } function onPecaMouseUp(e:MouseEvent):void{ //para de dragar pecaatual.stopDrag(); // Removo o ouvinte do stage stage.removeEventListener(MouseEvent.MOUSE_UP, onPecaMouseUp); //testa a colisão if (pecaatual.sensor.hitTestPoint(pecaatual.x,pecaatual.y,true)) { pecaatual.mouseEnabled = false; TweenLite.to(pecaatual, 0.3, {x: pecaatual.sensor.x, y: pecaatual.sensor.y}); // Aumento o contador para saber o final da atividade cont++; if (cont == qtdpecas) { finalizaatividade(); } } else { TweenLite.to(pecaatual, 0.7, {x: pecaatual.posX, y: pecaatual.posY, ease:Elastic.easeOut}); musicamola.play(); } } function finalizaatividade():void{ peca0.alpha = 1; peca1.alpha = 1; peca2.alpha = 1; } Compartilhar este post Link para o post Compartilhar em outros sites