Ir para conteúdo

Arquivado

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

Carcleo

As3 -> 2 problemas com meu fla

Recommended Posts

Olá pessoal.

Bom Dia.

 

Tenho 2 problemas com o meu swf:

 

1) Como faço para que, abrindo uma popup a partir do clique em um botão, o bloqueador de popups não seja ativado?

 

2) Tenho o codigo abaixo com uma tabela que movimenta via start drag por um botão. Acontece que, quando puxo o botão, o startdrag trabalha bem. Mas, quando solto o mouse, aí o stopdtag diz:

 

TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.

at infuteis_fla::MainTimeline/stopScroll2()[infuteis_fla.MainTimeline::frame40:39]

 

Segue em anexo o fla e o codigo abaixo:

stop();

voltar.addEventListener(MouseEvent.CLICK, volta);

var scrollP:Point = new Point(scroller.x,scroller.y); 
var scrollRange:int = 300; 
var timelineTotalFrames:int = especificacoes.totalFrames; 
var rect:Rectangle = new Rectangle(scroller.x,scroller.y,0,scrollRange-scroller.height); 

especificacoes.stop(); 


function onDown(e:MouseEvent):void 
{ 
scroller.startDrag(false, rect ); 
addEventListener(Event.ENTER_FRAME, onScroll); 
} 

function onUp(e:MouseEvent):void 
{ 
 scroller.stopDrag(); 
 if (hasEventListener(Event.ENTER_FRAME)) 
 {removeEventListener(Event.ENTER_FRAME, onScroll); }
} 

function onScroll(e:Event):void 
{ 
// (scroller.x - scrollP.x) fix if your scroll have a x different from 0 
var calcFrame : int = ((scroller.y - scrollP.y) * timelineTotalFrames) / scrollRange; 
especificacoes.gotoAndStop(calcFrame+1); 
} 

scroller.addEventListener(MouseEvent.MOUSE_DOWN, onDown); 
scroller.addEventListener(MouseEvent.MOUSE_UP, onUp); 
// release mouse outside scroll 
stage.addEventListener(MouseEvent.MOUSE_UP, onUp); 

http://www.bateriasadvance.com.br/infuteis.fla

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri que o problema NÂO estava nesse codigo. Mas sim, em um outro codigo de Drag.

Esse:

stop();

voltar.addEventListener(MouseEvent.CLICK, volta);


var bounds:Rectangle = new Rectangle(scrollMC.x, scrollMC.y, 0, 250);
var scrolling:Boolean = false;

//Começa o Scroll quando o botão é pressionado e arrastado
scrollMC.addEventListener (MouseEvent.MOUSE_DOWN, startScroll);
//Para o Scroll quando o botão é solto
scrollMC.addEventListener (MouseEvent.MOUSE_UP, stopScroll);
//Linha necessaria parta que a linha de cima surta efeito caso este swf esteja carregado externamente.
//Obs.: Caso rode este swf sozinho, o mouse nõ soltara do botão quando ele for solatdo e o botão continuará subindo e descendo. 
//Mas quando for rodando de dentro de um Movie Clip Container de um swf principal este problema não ocorrerá.
MovieClip(root).addEventListener (MouseEvent.MOUSE_UP, stopScroll); 
//Relação entre o Botão  e a barra de rolagem atraves da funçao enterHandler.
addEventListener (Event.ENTER_FRAME, enterHandler);


function scrollUp (e:Event):void {
scrollText.scrollV -= 1;
trace (scrollText.scrollV);
}

function scrollDown (e:Event):void {
scrollText.scrollV += 1;
trace (scrollText.scrollV);
}

function startScroll (e:Event):void {
scrolling = true;
scrollMC.startDrag (false,bounds);
   stage.addEventListener (MouseEvent.MOUSE_UP, stopScroll );
}

function stopScroll (e:Event):void {
scrolling = false;
scrollMC.stopDrag ();
stage.removeEventListener (MouseEvent.MOUSE_UP, stopScroll );	
}

function enterHandler (e:Event):void {
if (scrolling == true) {
	scrollText.scrollV = Math.round(((scrollMC.y - bounds.y)/250)*scrollText.maxScrollV);
}
}

Acontece que, ao chamar a função stopScroll

function stopScroll (e:Event):void {
scrolling = false;
scrollMC.stopDrag ();
stage.removeEventListener (MouseEvent.MOUSE_UP, stopScroll );	
}

Quando execute essa linha:

scrollMC.stopDrag ();

Estou perdendo o foco no objeto scrollMC. Desta forma, esta travando todo o swf.

Como faço para resolver esse problema?

 

Bom, achei outro problema.

 

Esse é o swf

aa.jpg

Acontece que enquanto eu navego nos menus: O que é, Dicas e Treinamento, tudo vai bem.

Porem, quando vou em Especificações Técnicas, que é essa imagem:

bb.jpg

Ao, rolar o scroll e soltar, após ir para qualquer outro menu o swf já se encontra travado.

Segue o as3 desse frame:

stop();

voltar.addEventListener(MouseEvent.CLICK, volta);

var scrollP:Point = new Point(scroller.x,scroller.y); 
var scrollRange:int = 300; 
var timelineTotalFrames:int = especificacoes.totalFrames; 
var rect:Rectangle = new Rectangle(scroller.x,scroller.y,0,scrollRange-scroller.height); 

especificacoes.stop(); 


function onDown(e:MouseEvent):void 
{ 
scroller.startDrag(false, rect ); 
addEventListener(Event.ENTER_FRAME, onScroll); 
} 

function onUp(e:MouseEvent):void 
{ 
 scroller.stopDrag(); 
 if (hasEventListener(Event.ENTER_FRAME)) 
 {removeEventListener(Event.ENTER_FRAME, onScroll); }
} 

function onScroll(e:Event):void 
{ 
// (scroller.x - scrollP.x) fix if your scroll have a x different from 0 
var calcFrame : int = ((scroller.y - scrollP.y) * timelineTotalFrames) / scrollRange; 
especificacoes.gotoAndStop(calcFrame+1); 
} 

scroller.addEventListener(MouseEvent.MOUSE_DOWN, onDown); 
scroller.addEventListener(MouseEvent.MOUSE_UP, onUp); 
// release mouse outside scroll 
stage.addEventListener(MouseEvent.MOUSE_UP, onUp); 

O compilador acusa erro nessa função:

function onUp(e:MouseEvent):void 
{ 
 scroller.stopDrag();    ---> Nessa linha o compilador trava.
 if (hasEventListener(Event.ENTER_FRAME)) 
 {removeEventListener(Event.ENTER_FRAME, onScroll); }
} 

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.