Simples :) Adicione um eventhandler no carregador lá na introdução e lá
acesse o content dele, assim:
public function carregaSite ():void
{
var carregador:Loader = new Loader();
var arquivo:String = "site.swf";
var requisicao:URLRequest = new URLRequest(arquivo);
carregador.load (requisicao);
requisicao.loaderContentInfo.addEventListener(Event.INIT,
requisicao_initHandler);
alvo.addChild (carregador);
}
private function requisicao_initHandler (event:Event) :void
{
// recuperando o carregador
var carregador:Loader = (event.currentTarget as LoaderInfo).loader;
// chamando o método indiretamente, porque content é um objeto do tipo
DisplayObject
carregador.content["metodo1"]();
/*
// ou assim:
var carregador:Loader = (event.currentTarget as LoaderInfo).loader;
var site:Site = carregador.content as Site;
site.metodo1();
*/
};
--
Gustavo Y. Kawamoto
2009/12/14 guilherme loureiro <[email protected]>
> Patrick,
>
> Como eu faria essa referencia dentro da classe site?
> Fiz um teste rapido aqui e me pintou essa duvida.
>
> Segue os codigos:
>
> --------------------------
> *Introducao.as*
> --------------------------
> package
> {
> import flash.display.*;
> import flash.events.*;
> import flash.net.*;
>
> public class Introducao extends MovieClip
> {
> public var _classeSite:Object;
>
> public function Introducao ():void
> {
> btn.addEventListener (MouseEvent.CLICK,onClick);
> btn.buttonMode = true;
>
> carregaSite ();
> }
>
> public function carregaSite ():void
> {
> var carregador:Loader = new Loader ;
> var arquivo:String = "site.swf";
> var requisicao:URLRequest = new URLRequest(arquivo);
> carregador.load (requisicao);
> alvo.addChild (carregador);
> }
>
> private function onClick (e:MouseEvent):void
> {
> trace ("Cliquei");
> _classeSite.metodo1 ();
> }
> }
> }
>
>
> --------------------------
> *Site.as
> *--------------------------
> package
> {
> import flash.display.*;
>
> public class Site extends MovieClip
> {
> public function Site ():void
> {
> // Como me referencio a classe Introducao?
> Object(parent)._classeSite = this;
> }
>
> public function metodo1 ():void
> {
> trace("Opa, estou dentro da classe site");
>
> }
> }
> }
>
>
>
>
>
>
>
> Att,
>
> Guilherme Loureiro Valadares
> Interactive Designer
> www.guilhermeloureiro.com
>
>
> 2009/12/14 guilherme loureiro <[email protected]>
>
>> Boa Patrick,
>>
>> Entendi o macete!
>> Vou fazer um teste aqui e retorno se deu certo!
>>
>>
>> Valeu!
>>
>> Att,
>>
>> Guilherme Loureiro Valadares
>> Interactive Designer
>> www.guilhermeloureiro.com
>>
>>
>> 2009/12/14 Patrick Facchin <[email protected]>
>>
>> V se isso ajuda
>>>
>>>
>>> tipo cria um atributo _parente:object na classe introducao e na classe
>>> site vc referencia ela mesma no atributo do _parente da introducao, tipo:
>>>
>>>
>>> class site
>>>
>>> introducao._parent = this;
>>>
>>> -----------------
>>>
>>> class introducao
>>>
>>> _parent.{metodo desejado}
>>>
>>>
>>> saco???
>>>
>>>
>>>
>>>
>>>
>>>
>>> 2009/12/14 guilherme loureiro <[email protected]>
>>>
>>>> Bom dia pessoal, blz?
>>>>
>>>> Seguinte:
>>>>
>>>> Eu tenho as seguinte estrutura no flash:
>>>>
>>>> introducao.fla --> Introducao.as
>>>>> site.fla --> Site.as
>>>>>
>>>>
>>>> Tipo, quando termina a introducao, eu chamo o site.swf... mas to com uma
>>>> duvida aqui... como acessar os metodos e propriedades da classe Site pela
>>>> classe Introducao? Tentei da forma que eu fazia em as2, e nao da...
>>>>
>>>> alvo_mc.MetodoSite();
>>>>
>>>> Alguém pode me dar um help?
>>>>
>>>> Valeu!
>>>>
>>>> Att,
>>>>
>>>> Guilherme Loureiro Valadares
>>>> Interactive Designer
>>>> www.guilhermeloureiro.com
>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>>
>>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev