Ir para conteúdo

POWERED BY:

Arquivado

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

patriciobyte

Carregar swf externo após transição AS3

Recommended Posts

Bom dia a todos,

Antes de mais nada gostaria de agradecer pela atenção.

Após muito enrolar estou estudando para começar a desenvolver meus projetos em AS3 e estou muito enrolado na questão de navegação com swf externo.

 

Com AS2 eu fazia desta forma:

No Palco principal: - Criava um mc instanciado holderswf e uma variável global(!removida as3)

_global.swfDesejado;
swfDesejado = "inicio.swf"
_root["holderswf"].loadMovie(swfDesejado, "holderswf");

Botão do menu do Palco principal: - Ao ser clicado diria o swfDesejado e iria pro voltar do swf carregado atual

_root["holderswf"].gotoAndPlay("voltar");
_root.swfDesejado = "sobre.swf"

E nos swfs carregados - Label voltar com animação de saída e no último frame colocava o código:

stop();
_root["holderswf"].loadMovie(_root.swfDesejado, "holderswf");

Como seria esse código em AS3?

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poutz cara, já procurei no google de todas as formas

 

Load externar swf as3

Load swf between transition as3

 

Carregar o swf em as3 eu sei, o problema é que não existe mais variável global, e eu dizia qual era o meu swf antes assim que apertava o botão, e no final do voltar ele mandava carregar o swf que veio pela variavel global..

 

É isso que está pegando.

 

Grande abraço e obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando isso para carregar:

 

package
{
	import flash.display.*;
	import flash.net.*;

	public class Main extends MovieClip {
	 
		 private var _swfLoader:Loader;
		 public function Main():void {
			_swfLoader = new Loader();
			addChild(_swfLoader); // Adiciona o proprio Loader, que atua como "holder"
		 }

		 public function carregarSwf():void
		 {
			  _swfLoader.load(new URLRequest('inicio.swf'));
		 }
  
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos,

através de ajudas consegui uma solução

 

Arquivo Main.as

package
{
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;

	public class Main extends MovieClip {
	 
		 private var _swfLoader:Loader;
		 public function Main():void {
			_swfLoader = new Loader();
			addChild(_swfLoader); // Adiciona o proprio Loader, que atua como "holder"

			// registra os cliques do mouse diretamente no objeto de menu. Isto evita ter que registrar ações individuais
			// podendo ter quantos botões desejar, sem modificar o código principal
			menu_mc.addEventListener(MouseEvent.CLICK, _clickHandler);
		 }

		 public function carregarSwf(arquivo:String):void
		 {

			  _swfLoader.load(new URLRequest(arquivo));
		 }

		 public function _clickHandler(evt:MouseEvent):void
		 {
			// Quando um evento é disparado, um objeto do tipo do evento registrado é passado à função
			// determinada em addEventListener. Este objeto contém informações importantes, por ex: qual objeto disparou o evento
		   // que pode ser obtido através do atributo "target"
		   // Neste caso, "target" possui um dos botões presentes no MovieClip "menu" e utilizamos o seu nome de instância para
		   // saber qual SWF carregar
			 var nomeArquivo:String = evt.target.name + '.swf';

		   // Carrega o arquivo normalmente
		   // _carregarArquivo(nomeArquivo);
		 }
  
   }
}

Função do Botao no menu

menu_mc.inicio.buttonMode = true
		menu_mc.inicio.addEventListener(MouseEvent.MOUSE_UP, menubtnRelease);

		function menubtnRelease( event:MouseEvent ) {
			MovieClip(_swfLoader.content).gotoAndPlay("voltar");
		}

Só ficou um último problema.

 

Como citei, no meu swf externo que eu carrego tem um label voltar com a animação de saida e no último frame dele tem a função que chama qual SWF ele deve CARREGAR!

Tentei botar algumas coisas mais não estou sabendo oque por nesse frame pra chamar a função carregarSwf(nomeArquivo). Outra dúvida que tenho é se o swf externo vai receber realmente o nomeArquivo já que não existem mais globais.

 

Estou usando esse código

// Chama a função definida na classe "Main"
this.carregarSwf(nomeArquivo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos.

 

Bom, sou apenas mais um perdido no mundo do AS3.. :P

Tentei utilizar o codigo citado acima, mas ele sempre me retorna um erro:

 

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

at site_fla::MainTimeline/menubtnRelease()

 

Será que alguem pode me dar uma luz?

 

Desde já a gradeço a atenção..

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.