Carcleo 4 Denunciar post Postado Março 5, 2012 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
Carcleo 4 Denunciar post Postado Março 5, 2012 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