saposempre 0 Denunciar post Postado Dezembro 2, 2009 Olá pessoal, tudo beleza? Seguinte: Tenho swf principal no qual chamo outros swf's. Estava tudo funcionando bem, até que inseri nos swf's externos um preloader. Simplesmente apenas o preloader aparece e o resto do conteúdo não =/ O swf externo funciona normal (loader+conteúdo) quando eu testo no navegador e também no Ctrl+Enter. O que poderia ser? Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Dezembro 2, 2009 tenta colocar na primeira linha do seu fla do arquivo externo o seguinte: this._lockroot = true; Olá pessoal, tudo beleza? Seguinte: Tenho swf principal no qual chamo outros swf's. Estava tudo funcionando bem, até que inseri nos swf's externos um preloader. Simplesmente apenas o preloader aparece e o resto do conteúdo não =/ O swf externo funciona normal (loader+conteúdo) quando eu testo no navegador e também no Ctrl+Enter. O que poderia ser? Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
saposempre 0 Denunciar post Postado Dezembro 2, 2009 já coloquei. http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif=/ eu conseguia importar normal o externo antes de colocar o preloader. e agora importo, mas apenas o preloader aparece, o conteudo do frame 2 não. nem consigo entender o porque.. http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif Heeeeeeeelp http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Dezembro 3, 2009 Hmm, posta ai então as actions que está usando nos dois swfs pra saber o que pode estar dando conflito. Compartilhar este post Link para o post Compartilhar em outros sites
saposempre 0 Denunciar post Postado Dezembro 3, 2009 Bem, vamos ao que está acontecendo nos minimos detalhes :D Eu consigo importar o swf externo através do código: alvo.loadMovie("ACADEMIA.swf"); E este funcionava até eu colocar um loader no swf externo ACADEMIA. Aqui está o código do preloader: Action 1: var percents = 0; startTimer = getTimer; Action 2: clock = elapsed; total = _root.getBytesTotal(); loaded = _root.getBytesLoaded(); left = total - loaded; elapsed = int((getTimer() - starttimer) / 1000); elapsedm = int(elapsed / 60); elapseds = int(elapsed - elapsedm * 60); elapsedd = "Elapsed time: " + elapsedm + " m" + " " + elapseds + " s"; if (elapsed != clock) { bps = int(loaded / elapsed); bpsd = bps + " bps"; } // end if leftt = int(left / bps); leftm = int(leftt / 60); lefts = int(leftt - leftm * 60); leftd = "Left time: " + leftm + " m" + " " + lefts + " s"; if (_root.getBytesLoaded() == _root.getBytesTotal()) { percents = percents + 5; if (percents > 100) { percents = 100; } // end if } else { percents = Math.floor(_root.getBytesLoaded() / _root.getBytesTotal() * 100); } // end if gauge.gotoAndStop(percents + 1); label = percents; Action 3: if (percents < 100) { gotoAndPlay(2); } else { _visible = false; _root.gotoAndPlay("play"); stop(); } // end if E sim, eu coloquei o código no primeiro frame do externo: ;) this._lockroot = true; Quando eu coloco rodar o SWF que chama o EXTERNO ele roda normal e chama o EXTERNO, porém, o EXTERNO para de 'tocar' quando o PRELOADER termina de carregar, ou seja, chega em 100%, e deveria passar para o Frame 2. E isso não acontece quando eu 'toco' apenas o EXTERNO, ele carrega normal até 100% e quando termina passa para o Frame 2, como tem que ser :) Falta tão pouco para terminar meu projeto.. me ajudem :'( Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Dezembro 3, 2009 Pois é, falei pra você colocar o _lockroot por imaginar que seria o uso de _root que estaria prejudicando, o _root se refere a timeline principal do projeto todo, quando você faz um arquivo externo e usa somente ele, sem este este ser carregado dentro de outro, ele funciona bem com o _root, mas quando você carrega ele dentro de outro arquivo, dai ele perde o _root, pois ele vai entender que o _root dali em diante será o _root do movielclip principal, então tirando o flash principal, nos outros não é nada aconselhável você usar o _root, esse _lockroot da uma enganada no flash dizendo que é pra ele considerar a timeline do swf externo como _root, porem se quiser acessar a timeline do fla principal com o uso de _lockroot você precisa usar a loucura do _root._parent tipo, se você ja estiver no chão, você pede pra passar do chão e acessar o inferno rs. Agora falando em solução, você pode criar uma variavel em cada swf externo para indicar que você está fazendo o preloader daquela timeline e não do "_root" que seria a timeline principal, dai você poderia colocar na primeira linha da action algo como var here = this; dai você estara referenciando aquele movieclip a variavel this, dai ficaria assim seu preloader: var here = this; clock = elapsed; total = here.getBytesTotal(); loaded = here.getBytesLoaded(); left = total - loaded; elapsed = int((getTimer() - starttimer) / 1000); elapsedm = int(elapsed / 60); elapseds = int(elapsed - elapsedm * 60); elapsedd = "Elapsed time: " + elapsedm + " m" + " " + elapseds + " s"; if (elapsed != clock) { bps = int(loaded / elapsed); bpsd = bps + " bps"; } // end if leftt = int(left / bps); leftm = int(leftt / 60); lefts = int(leftt - leftm * 60); leftd = "Left time: " + leftm + " m" + " " + lefts + " s"; if (here.getBytesLoaded() == here.getBytesTotal() && here.getBytesLoaded() > 50) { percents = percents + 5; if (percents > 100) { percents = 100; } // end if } else { percents = Math.floor(here.getBytesLoaded() / here.getBytesTotal() * 100); } // end if gauge.gotoAndStop(percents + 1); label = percents; no 3: if (percents < 100) { gotoAndPlay(2); } else { _visible = false; here.gotoAndPlay("play"); stop(); } // end if Vamos ver se agora funciona :) Compartilhar este post Link para o post Compartilhar em outros sites
saposempre 0 Denunciar post Postado Dezembro 3, 2009 Pois é, falei pra você colocar o _lockroot por imaginar que seria o uso de _root que estaria prejudicando, o _root se refere a timeline principal do projeto todo, quando você faz um arquivo externo e usa somente ele, sem este este ser carregado dentro de outro, ele funciona bem com o _root, mas quando você carrega ele dentro de outro arquivo, dai ele perde o _root, pois ele vai entender que o _root dali em diante será o _root do movielclip principal, então tirando o flash principal, nos outros não é nada aconselhável você usar o _root, esse _lockroot da uma enganada no flash dizendo que é pra ele considerar a timeline do swf externo como _root, porem se quiser acessar a timeline do fla principal com o uso de _lockroot você precisa usar a loucura do _root._parent tipo, se você ja estiver no chão, você pede pra passar do chão e acessar o inferno rs. Agora falando em solução, você pode criar uma variavel em cada swf externo para indicar que você está fazendo o preloader daquela timeline e não do "_root" que seria a timeline principal, dai você poderia colocar na primeira linha da action algo como var here = this; dai você estara referenciando aquele movieclip a variavel this, dai ficaria assim seu preloader: var here = this; clock = elapsed; total = here.getBytesTotal(); loaded = here.getBytesLoaded(); left = total - loaded; elapsed = int((getTimer() - starttimer) / 1000); elapsedm = int(elapsed / 60); elapseds = int(elapsed - elapsedm * 60); elapsedd = "Elapsed time: " + elapsedm + " m" + " " + elapseds + " s"; if (elapsed != clock) { bps = int(loaded / elapsed); bpsd = bps + " bps"; } // end if leftt = int(left / bps); leftm = int(leftt / 60); lefts = int(leftt - leftm * 60); leftd = "Left time: " + leftm + " m" + " " + lefts + " s"; if (here.getBytesLoaded() == here.getBytesTotal() && here.getBytesLoaded() > 50) { percents = percents + 5; if (percents > 100) { percents = 100; } // end if } else { percents = Math.floor(here.getBytesLoaded() / here.getBytesTotal() * 100); } // end if gauge.gotoAndStop(percents + 1); label = percents; no 3: if (percents < 100) { gotoAndPlay(2); } else { _visible = false; here.gotoAndPlay("play"); stop(); } // end if Vamos ver se agora funciona :) Já inicio a resposta me desculpando por ser leigo. Mesmo achando que entendi o que você quis dizer, vou perguntar: 1. É só eu trocar o código que tenho, por esse que você me passou, ou seja, trocar o '_root' por 'here'? 2. Tenho que fazer mais alguma coisa? Se for apenas trocar o '_root' por 'here' não deu certo http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif Quando dou Ctrl+Enter, no EXTERNO mesmo, aparece o preloader até 100, porém, não passa para o Frame 2. Obrigado por estar me ajudando. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif Compartilhar este post Link para o post Compartilhar em outros sites
saposempre 0 Denunciar post Postado Dezembro 4, 2009 Conseguiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii \http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif/ UÁÁÁÁÁÁÁÁÁÁÁÁÁÁ!! Tirei todos os 'here' e 'root' do act2 e deixei apenas no act3 o _root, também no lugar do here. To tão feliz! http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif Edit: Esquece, me precipitei ¬¬' Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Dezembro 4, 2009 Resolveu? Compartilhar este post Link para o post Compartilhar em outros sites