Ir para conteúdo

Arquivado

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

Carcleo

Carregando um mcExterno dentro de outro

Recommended Posts

Tenho o swf principal(index.swf). Ele carrega um swf externo(infoutil.swf). Esse infoutil, tem um menu com 3 íteis.

 

Um ítem desse menu vai enviar para o frame 80 e nesse frame 80 irá carregar outro swf externo (treinamento.swf).

 

 

Como faço isso?

 

No menu (do infoutil.swf) fiz assim(numa swith com o clikq do botão):

 

case (bat):
if (currentFrame!=80)
       {
    var carregar:Loader = new Loader();
           var url:URLRequest = new URLRequest("treinamento.swf");
    carregar.x = 400;
	    carregar.y = 10;
           carregar.load(url);
           addChild(carregar);

    gotoAndStop(80);
}

Dessa forma esta adicionando o movie clipe no palco.

Daí, resolvi carregar no palco mesmo em uma posição boa.

 

Porem, quando chamo o movie clipe, dá o seguinte log de erro:

TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at Scrollbar/setupEvents()
at Scrollbar()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at treinamento_fla::treinamento_1()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at treinamento_fla::treinamento_1/frame1()
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at treinamento_fla::treinamento_1/imageLoaded()

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho duas perguntas:

 

1) Porque será que se rodar o swf treinamento sozinho ele roda certo. Mas, se rodar o swf treinamento de dentro do swf infouteis como um swf externo, parece que o infouteis reclama a respeito do arquvo(classe Scrollbar) as que vai junto com o movieclipe scrollbar.

 

2) Peguei o codigo abaixo na web que promete fazer addchild de um mcExterno no stage, porem em um frame determinado pelo usuario. Eu testei e não funcionou. Será que fiz algo de errado?

Segue o código que achei:

function loadSWF(swfURL){
var myLoader:Loader = new Loader();
var mySWF:URLRequest = new URLRequest(swfURL);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
myLoader.load(mySWF);

}

function onCompleteHandler(loadEvent:Event){	
     addChild(loadEvent.currentTarget.content);
     loadEvent.currentTarget.content.gotoAndStop(swfFrame);
}

function onProgressHandler(myProgress:ProgressEvent){
var percent:Number = Math.round(myProgress.bytesLoaded/myProgress.bytesTotal*100);
trace(percent+"% loaded");
}

var swfFrame:Number=100;
loadSWF("swfs/movie.swf");
//call the function to load external swf and go to frame 100

Segue como eu fiz:

	case (bat):
	if (currentFrame!=80)
       {
         function loadSWF(swfURL)
	  {
             var myLoader:Loader = new Loader();
             var mySWF:URLRequest = new URLRequest(swfURL);
      myLoader.x = 400;
      myLoader.y = 10;
             myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
             myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
             myLoader.load(mySWF);
          }

         function onCompleteHandler(loadEvent:Event)
	  {	
             var swfFrame:Number=80;
             addChild(loadEvent.currentTarget.content);
             loadEvent.currentTarget.content.gotoAndStop(swfFrame);
         }

         function onProgressHandler(myProgress:ProgressEvent)
	  {
             var percent:Number = Math.round(myProgress.bytesLoaded/myProgress.bytesTotal*100);
             trace(percent+"% loaded");
          percentual.text=Math.floor(percent*100)+"%";
         }


         loadSWF("treinamento.swf");
          //call the function to load external swf and go to frame 100		}
	   break;

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.