Jump to content

Project2015

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Comum

About Project2015

  1. Lendo o help da Adobe descobri que: "se o clipe de filme tiver várias cenas, esse valor será o número do quadro na cena atual", então, em cada nova cena, ele reiniciava o currentFrame como 1. Bastou criar uma variável que guardasse o valor dos frames da cena anterior e somasse com os frames da nova cena. Segue o código para auxiliar quem também está tendo essa dificuldade: //Variáveis necessárias: var cenanome:Scene; var num_frames:int = 0; var curFrame:int = 0; //Após carregado o swf externo: cenanome = mclip.currentScene; var cenanome2:Scene = mclip.currentScene; //condição: if (cenanome.name != cenanome2.name) { num_frames = curFrame; cenanome = cenanome2; } //Somo o valor dos frames da cena anterior com a atual na função enterframes: curFrame = num_frames + mclip.currentFrame; Obrigado a todos que leram meu código e, de alguma forma, analisaram para tentar me auxiliar na resolução desse problema.
  2. Consegui fazer com que o tempo acompanhe a duração do swf externo, porém, o único problema é que, a cada troca de cena do swf externo, o contador reinicia novamente. Preciso que seja contínuo até o final do arquivo swf. Alguém tem alguma sugestão? var swfLoader:Loader = new Loader(); var swfFile:URLRequest = new URLRequest("cap01.swf"); var currentSWF:MovieClip = new MovieClip(); swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadedHandler); function swfLoadedHandler(e:Event):void { currentSWF = MovieClip(swfLoader.content); currentSWF.addEventListener(Event.ENTER_FRAME , contador); } function contador(e:Event):void { var minutesElap:int; var secondsElap:int; var minutesTot:int; var secondsTot:int; var totFrames:int = currentSWF.totalFrames; var curFrame:int = currentSWF.currentFrame; minutesElap = Math.floor((curFrame)/12/60); secondsElap = Math.floor((curFrame/12)-(minutesElap*60)); minutesTot = Math.floor((totFrames)/12/60); secondsTot = Math.floor((totFrames/12)-(minutesTot*60)); contagem.text = (minutesElap < 10 ? "0" + minutesElap : minutesElap) + ":" + (secondsElap < 10 ? "0" + secondsElap : secondsElap) + "/" + (minutesTot < 10 ? "0" + minutesTot : minutesTot) + ":" + (secondsTot < 10 ? "0" + secondsTot : secondsTot); } swfLoader.load(swfFile); addChild(swfLoader);
  3. O mais próximo que consegui chegar foi de carregar o swf externo e do totalFrames trazer o resultado esperado, porém, o contador de tempo fica parado (00:00/07:25). De acordo com o passar dos frames ele deveria ir progredindo (ex: 01:12/07:25). Segue o código (desculpem não ter nenhuma noção de orientação a objeto aqui): import flash.display.MovieClip import flash.display.Loader var loader: Loader = new Loader(); var swfExterno: Object = new Object(); loader.load(new URLRequest("cap01.swf")); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, carregou); function carregou(event: Event): void { addChild(loader); loader.x = 0; loader.y = 77; swfExterno = event.target.content; var minutesElap: Number = 0; var secondsElap: Number = 0; var minutesTot: Number = 0; var secondsTot: Number = 0; var totFrames = this.swfExterno.totalFrames; var curFrame = this.swfExterno.currentFrame; var myTimer: Timer = new Timer(1000, 0); myTimer.addEventListener("timer", timerHandler); myTimer.start(); function timerHandler(event: TimerEvent) { minutesElap = Math.floor((curFrame) / 12 / 60); secondsElap = Math.floor((curFrame / 12) - (minutesElap * 60)); minutesTot = Math.floor((totFrames) / 12 / 60); secondsTot = Math.floor((totFrames / 12) - (minutesTot * 60)); if (secondsTot > 0) { contagem.text = (minutesElap < 10 ? "0" + minutesElap : minutesElap) + ":" + (secondsElap < 10 ? "0" + secondsElap : secondsElap) + "/" + (minutesTot < 10 ? "0" + minutesTot : minutesTot) + ":" + (secondsTot < 10 ? "0" + secondsTot : secondsTot); } else { contagem.text = ""; } } } Desde já agradeço a atenção.
  4. Necessito modificar esse código feito em 2008 com Flash MX e AS1 para o Flash Professional 2015 com AS3, porém, não tenho conhecimento de orientação a objetos e AS3. Esse código abre arquivos swf externos para um palco principal em um movieclip e aparece o progresso dos frames em tempo (00:00/00:00) tempo decorrido/tempo total bem como uma barra de progresso. Não estou conseguindo fazer funcionar a barra de progresso e nem o tempo. Já andei lendo sobre a função timer, UILoader, Loader, porém não consegui aplicar nesse código em questão: _global.dados = 1; var loadingCall:Number = setInterval(preloadSite, 250); var loadingCalls:Number = setInterval(times, 1000); bt_avancar.onPress = function() { if (dados<7) { dados++; informar(dados); } }; bt_voltar.onPress = function() { if (dados>1) { dados--; informar(dados); } }; if (dados>7) { dados = 0; } function preloadSite() { if (dados < 2) { progressbar._width = 0 } else { loaded = Math.round(_root.mclip._currentframe); total = Math.round(_root.mclip._totalframes); percent = loaded/total progressbar._width = percent*487; if (loaded >= total) { clearInterval(loadingcall); } if (loaded <= 1) { progressbar._width = 0 } } } function times () { minutesElap = Math.floor((_root.mclip._currentframe)/12/60); secondsElap = Math.floor((_root.mclip._currentframe/12)-(minutesElap*60)); minutesTot = Math.floor((_root.mclip._totalframes)/12/60); secondsTot = Math.floor((_root.mclip._totalframes/12)-(minutesTot*60)); if (secondsTot <> 0) { contagem.text = (minutesElap < 10 ? "0" + minutesElap : minutesElap) + ":" + (secondsElap < 10 ? "0" + secondsElap : secondsElap) + "/" + (minutesTot < 10 ? "0" + minutesTot : minutesTot) + ":" + (secondsTot < 10 ? "0" + secondsTot : secondsTot); } else { contagem.text = "" } } bt_sair.onRelease = function () { fscommand("quit"); } function informar () { switch (dados) { case 2: mclip.loadMovie("cap01.swf"); break; case 3: mclip.loadMovie("cap02.swf"); break; case 4: mclip.loadMovie("cap03.swf"); break; default: mclip.unloadMovie(); contagem.text = ""; } } :rolleyes:
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.