Ir para conteúdo

POWERED BY:

Arquivado

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

Riba

Erro mais estranho q já vi

Recommended Posts

Oi Galera, erro esquisito aqui.

 

Estou usando um menu em AS3 que funciona q é uma beleza.

Mas só no Firefox acontece o bug: Abrimos a pagina e tudo certo, menu funcionando,

dai você desce a página TODA usando a barra de rolagem naturalmente,

para, sobre novamente com a barra de rolagem e ao passar o mouse sobre o menu o Flash

simplesmente parece estar morto. É morto, pq não executa nada do que executava a alguns segudos.

você pode clicar dai ele volta, mas não é o certo, o certo é só de passar o mouse por cima ativar.

 

Alguém já viu algo parecdido no flash? Me ajudem por favor pq não entendo onde está esse pequeno conflito.

 

O menu está nessa página

https://www.rumo.com.br/sistema/home.asp?IDLoja=10249

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugiro alterar o SCRIPT que carrega o Flash. Ele fica "morto" mas se clicar volta. Provavelmente está sendo desativado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri que o sistema do FastCommerce que usamos para hospedar o site não permite o enviou de arquivos .AS

 

Os dois arquivos são esses >

 

O .AS

 

package
{
	// Import Flash classes
	import flash.display.*;
	import flash.events.*;

	public class ProximityMenu extends MovieClip
	{
		private var ia:Array;
		
		public function ProximityMenu():void
		{
			ia = [im1, im2, im3, im4, im5, im6, im7, im8, im9, im10, im11, im12, im13, im14, im15, im16, im17, im18, im19, im20, im21, im22, im23, im24];
			for(var i:uint=0; i<24; i++)
			{
				ia[i].buttonMode = true;
				ia[i].ox = ia[i].x;
				ia[i].oy = ia[i].y;
				ia[i].tx = ia[i].ox;
				ia[i].ty = ia[i].oy;
				ia[i].addEventListener(MouseEvent.ROLL_OVER, onOver);
			}
			stage.addEventListener(Event.ENTER_FRAME, onMove);
		}
		
		private function onOver(e:MouseEvent):void
		{
			e.target.gotoAndPlay("over");
			addChild(MovieClip(e.target));
		}
		
			
		private function onMove(e:Event):void
		{
			for(var i:uint=0; i<24; i++)
			{
				var dist:Number =  getDist(mouseX, mouseY, ia[i].ox, ia[i].oy);
				if(dist < 30)
				{
					ia[i].tx = mouseX;
					ia[i].ty = mouseY;
				}
				else
				{
					ia[i].tx = ia[i].ox;
					ia[i].ty = ia[i].oy;
				}
				ia[i].x += Math.round((ia[i].tx - ia[i].x) * 0.5);
				ia[i].y += Math.round((ia[i].ty - ia[i].y) * 0.5);
			}
		}
		
		private function getDist(x1:Number, y1:Number, x2:Number, y2:Number):Number
		{
			var dx:Number = x2 - x1;
			var dy:Number = y2 - y1;
			return Math.sqrt(dx*dx + dy*dy);
		}
	}
}

e dentro do SWF, o código principal em cada botão é esse >

 

button1.addEventListener(MouseEvent.CLICK,myButtonFunction);
function myButtonFunction(event: MouseEvent) {
var request = new URLRequest("http://www.emporiumexpress.com.br");
navigateToURL(request, "_self");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei uma coisa bacana mas preciso entender melhor, pois sou novo em AS3

 

http://www.adobe.com/devnet/actionscript/a...ing_as3_03.html

 

Sobre como funciona Root, Stage e Box.

E reparei um detalhe, de fato o problema acontece quando se desce a página até o fim e volta

até a posição inicial onde ele começou a "funcionar pra valer" na pagina, ou seja quando abriu a página.

 

Estranho pra mim mas no texto no link relata algo parecido.

O q acham?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então coloque seu action dentro do proprio arquivo swf ;)

 

Abraços

Como tiro exatamente do arquivo externo para o próprio arquivo swf?

Como tirar do Package e adaptar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu código:

// Import Flash classes
import flash.display.*;
import flash.events.*;

var ia:Array;
		
function ProximityMenu():void{
	ia = [im1, im2, im3, im4, im5, im6, im7, im8, im9, im10, im11, im12, im13, im14, im15, im16, im17, im18, im19, im20, im21, im22, im23, im24];
	for(var i:uint=0; i<24; i++)
	{
		ia[i].buttonMode = true;
		ia[i].ox = ia[i].x;
		ia[i].oy = ia[i].y;
		ia[i].tx = ia[i].ox;
		ia[i].ty = ia[i].oy;
		ia[i].addEventListener(MouseEvent.ROLL_OVER, onOver);
	}
	stage.addEventListener(Event.ENTER_FRAME, onMove);
}
		
function onOver(e:MouseEvent):void
{
	e.target.gotoAndPlay("over");
	addChild(MovieClip(e.target));
}
function onMove(e:Event):void
{
	for(var i:uint=0; i<24; i++)
	{
		var dist:Number =  getDist(mouseX, mouseY, ia[i].ox, ia[i].oy);
		if(dist < 30)
		{
			ia[i].tx = mouseX;
			ia[i].ty = mouseY;
		}
		else
		{
			ia[i].tx = ia[i].ox;
			ia[i].ty = ia[i].oy;
		}
		ia[i].x += Math.round((ia[i].tx - ia[i].x) * 0.5);
		ia[i].y += Math.round((ia[i].ty - ia[i].y) * 0.5);
	}
}
		
function getDist(x1:Number, y1:Number, x2:Number, y2:Number):Number
{
	var dx:Number = x2 - x1;
	var dy:Number = y2 - y1;
	return Math.sqrt(dx*dx + dy*dy);
}

O unico erro que dá e das im1 etc que acredito que seja das instancias das imagens ;)

 

De resto da tudo certo.

 

Abraços

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.