Ir para conteúdo

Arquivado

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

André Birnfeld

[ActionScript 3.0] Problemas com drag and drop com movimento contínuo.

Recommended Posts

dale, não so muito bom em as3 então após mtas tentativas recorri ao forum aqui, to com um problema de limitação de espaço, o palco tem 1400x1000 e a imagem que tem q rolar tem 7372.. olhem o swf e tentem me ajudar...

 

o drag and drop sendo limitado desta forma funciona desde que esteja sem os parametros para funcionar o movimento "pós-drop"

(-5972, 0, sample_mc.width -1400, 0);

acontece que a tela está fugindo com esses novos metodos e parametros e funções de movimentar...

 

preciso de ajuda!! valeuu

 

 

http://lol.net.br/teste.swf

// velicities along x/y
var dvx:Number = 0;
var dvy:Number = 0;
// previous coordinates
var prevX:Number = 0;
var prevY:Number = 0;
// deceleration
var friction:Number = 0.4;
mc_linha.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);

function onMouseDown(e:MouseEvent):void
{
stopAnimation();;
var cage:Rectangle = new Rectangle(-5972, 0, sample_mc.width -1400, 0);
mc_linha.startDrag(false, cage);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.addEventListener(Event.ENTER_FRAME, onDrag);
}
function onDrag(e:Event):void
{
dvx = mc_linha.x - prevX;
dvy = mc_linha.y - prevY;
prevX = mc_linha.x;
prevY = mc_linha.y;
}
function onMouseUp(e:MouseEvent):void
{
stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.removeEventListener(Event.ENTER_FRAME, onDrag);
addEventListener(Event.ENTER_FRAME, throwAnimation);
}
function throwAnimation(e:Event):void
{
if (Math.abs(dvx) < 0.1) stopAnimation();
dvx *= friction;
dvy *= friction;
mc_linha.x += dvx;
mc_linha.y += dvy;
}
function stopAnimation():void {
dvx = dvy = prevX = prevY = 0;
removeEventListener(Event.ENTER_FRAME, throwAnimation);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Linha 11 Aviso 1090: Problema de migração: o manipulador de eventos onMouseDown não é acionado automaticamente pelo Flash Player durante a execução no ActionScript 3.0. Você deve primeiro registrar este manipulador para o addEventListener usind evento ('mouseDown', callback_handler).

 

Linha 26 Aviso 1090: ...onMouseUp

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado por tentar ajudar, mas esses probleminhas de sintaxe n eram o principal problema, o negócio tá rodando e funcionando com eles, mas ja arrumei...

 

A questão chave é:

 

 

Preciso de uma sentença no lugar certo que diga "Não fazer a animação se o X(position) do mc_linha estiver igual a 5972 nem quando for 0."

 

se conseguir isso seria mto gráto de verdade



if(mc_linha.x >= 0 || mc_linha.x <= stage.stageWidth + 3852){
stage.removeEventListener(Event.ENTER_FRAME, onDrag);
removeEventListener(Event.ENTER_FRAME, throwAnimation);
stopAnimation();
}
else{
}

tentei isso agora e nada.....



if (mc_linha.X > 1) stopAnimation();
if (mc_linha.X < -5600) stopAnimation();

 

tentei isso agora e nada... (nao deem bola pros valores, oq ta em questão é que a sentença nao pega!)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelas informações que postou os warnings mereciam atenção.

 

O que significa exatamente movimento "pós-drop"? o habitual é usar start/stop drag ou mouse down/up (em efeito parallax).

 

Em uma linha exemplifica >> sample_mc.width

 

Em outra declara >> mc_linha.X , quando a sintaxe correta em AS3 seria >> mc_linha.x

 

O ponto 0,0 do stage é o mesmo do movie clip que deseja movimentar? Se precisa referência do ponto 0,0 do mc externo sugiro pesquise sobre como utilizar o 'parent'.

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço imensamente de novo por vir ao meu tópico com intuito de me ajudar, mas nada disto é o problema, vou tentar ser mais claro....

 

O que este código está fazendo:

 

Após o drag and drop típico e comum, ele tem uma "animação" que segue puxando o objeto (mc_linha) em alguns pixels e por algum tempo... (lembra um poco os negócio de iphone que tu clica e arrasta)

 

acontece, que essa "animação" que ocorre depois que solta o "mc_linha" está funcionando mesmo que o mc_linha comece a sair do stage... só que eu quero uma sentença que diga para PARAR de animar ou NAO SEGUIR ANDANDO quando o X(posiçao) do mc_linha estiver igual a 5972 nem quando for 0."

 

 

Muito obrigado de qualquer forma!!!

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.