Ir para conteúdo

POWERED BY:

Arquivado

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

Thiago de Oliveira Cruz

unloadMovie cade? setinterval como faz?

Recommended Posts

Bom galera eu gostaria de saber como fazer um unloadMovie... no AS3..... eu entendo muito de AS2 já AS3... eu fico devendo

 

eu sei que para fazer um unloadMovie fulerinho usa-se

function onClick(event:MouseEvent):void {
	while(numChildren) removeChildAt(0);
}
bt01.addEventListener(MouseEvent.CLICK, onClick);

Como que faz um que de unload na raiz??? para que eu possa fazer popups internos igual no AS2

 

E como que usa setinterval que eu tentei entender no help....... mas a luz não me veio =(

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

para remover um movieClip (o que seria o unload) é

 

removeChild(nome_do_movie)

 

 

agora a setInterval, você tem que usar a classe Timer

 

 

 

var myTimer:Timer = new Timer(1000, 2);
myTimer.addEventListener("timer", timerHandler);
myTimer.start();

public function timerHandler(event:TimerEvent):void {
			trace("timerHandler: " + event);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eder,

 

No caso ali em cima explicado eu removo o child clicando no botão fechar que se encontra no mesmo lugar que o movie... ele seria um tipo de comando para apagar os dados do clip digamos assim...

 

O que eu tava com ideia... era de fazer um banner para site em flash que ao clicar no fechar ou no X como expliquei lá no forum de AS2 http://forum.imasters.com.br/index.php?showtopic=312901

 

Ai eu queria colocar um setInterval no caso você disse timer... que ai faria com que o banner ia desligar sozinho :P

 

Mas como usar a função _root? para eu poder apagar na raiz? :S

 

Eu não faço a menor idéia...

 

Aprendi na base do erro e acerto e lendo e fazendo mta coisa AS2...... AS3 só complicou minha vida rs

Sabe onde teria um tutorial alem do seu que desse noção de AS3?

 

Ou livro???

:D

help me!! :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi, para apagar um movieClip que esta na raiz, teste assim:

 

var palco:MovieClip = MovieClip(root)
palco.removeChild(palco.movie_mc)

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

iiiiiiii doido....

 

 

Deu certo não =(

 

Vamos ao meu .fla todo ok? usando inclusive seu exemplo :P

 

primeiro fla

 

carrega

no frame actions

var carregador:Loader = new Loader();

carregador.load(new URLRequest("propaganda.swf"));

addChild(carregador);

carregador.x = 10;
carregador.y = 10;

segundo fla

 

propaganda

no frame actions

var palco:MovieClip = MovieClip(root)

function onClick(event:MouseEvent):void {
	palco.removeChild(palco.carregador);
}
bt01.addEventListener(MouseEvent.CLICK, onClick);

No segundo fla e criei um texto básico no palco chamado "Oi eu sou uma propaganda"

e criei um [X] botão o qual chamei de bt01 e instanciei de bt01.

 

e ao clicar no botão X para fechar a janelinha que tem o código acima

da esse erro

 

TypeError: Error #2007: Parameter child must be non-null.

at flash.display::DisplayObjectContainer/removeChild()

at propaganda_fla::MainTimeline/onClick()

 

e eu queria colocar aquele seu Timer para fazer com que ele feche sozinho...... :( mas até agora não captei como funciona

 

o meu arquivo se encontra aqui

 

Se puder ajudar ficarei muito agradecido :D

 

E ai já vai ser um tutorial de propaganda interna em flash para AS3 ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema chave que eu encontrei foi que o flash não ta conseguindo ler... o clip do MainTimeline

 

Eu coloquei o seguinte comando dentro do clip principal

trace("isso é um:", carregador);

e ele diz

isso é um: [object Loader]

 

Aeee correto muito bem :D

 

Ai eu fui lá e coloquei o comando que você sugeriu

var palco:MovieClip = MovieClip(root)

 

Para encontrar a root

ok funcionou bem

quando no clip interno eu dou trace(palco);

ele retorna

[object MainTimeline]

 

Muito bemmmmmm tudo certo até aqui

Mas ai quando eu coloco

trace(palco.carregador);

 

Ele simplesmente retorna

undefined

 

Sendo que lá em cima ele já tinha encontrado o carregador.......

pq quando carreguei ele não esta encontrando?????????

 

E eu fiz testes criei diversos outros MC dentro da line root e nenhum ele encontra...

Se eu colocar um botão ele encontra......

 

E estão todos instanciados....

 

HELP ME!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu continuo com minha duvida =(

 

Pq o swf iniciado dentro de um alvo... não encontra o movieClip no palco para fecha-lo???

 

Alguem sabe me dizer????

 

Ai talvez eu saiba chegar onde eu quero ><

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeh Brother, então eu so alterei o teu Codigo, no caso do .fla Propaganda

 

function onClick(event:MouseEvent):void {
	while(numChildren) removeChildAt(0);

}
bt01.addEventListener(MouseEvent.CLICK, onClick);

Eh so testar q aki deu certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo você respondeu com o meu primeiro tópico assim fica fácil rs

 

 

Eu quero a solução ser ser essa ae...

 

Eu quero dar removeChild no root... entendeu???

 

Mas o problema é que ele não encontra o movie clip no root... quando procuro dentro do movieClip... eu mando ele ir ao palco procurar... ele não encontra...

 

Então se não encontra diversas outras funções seriam perdidas que eu sei fazer através de dentro de um clip alvo...

 

por isso quero tanto essa resposta....

 

E é algo simples em AS2... não pensei que seria um bixo de 7 cabeças no AS3...

E tão complexo que não conheço ninguem que saiba responder... estou com tópicos em sites gringos... e inclusive no da Micromedia... e eles não sabem responder rs...

 

Aparentemente acontece algum tipo de bug... ao se entrar num clip alvo que no AS3 não reconhece mais o movie clip =(

 

Então se alguem souber como resolve por favor ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

então berseck, o esquema mudou mesmo no AS3, a ideia é acabar com esse acesso global de qualquer ponto para qualquer ponto

 

no caso de um SWF carregado acessar o palco principal que foi carregar, uma maneira mais facil que achei foi criar uma classe para guardar variaveis globais, seria assim ela:

 

 

package {
	import flash.display.MovieClip;
	
	public class Global extends Object
	{
		public static var _palco:MovieClip
		
	}

}

 

 

no swf principal:

 

 

import Global;

Global._palco = MovieClip(root)

var carregador:Loader = new Loader();

carregador.load(new URLRequest("teste3.swf"));

addChild(carregador);

carregador.x = 10;
carregador.y = 10;

 

e no que foi carregado:

 

 

import Global;

trace(Global._palco)
Global._palco.carregador.visible=false

 

existe outra maneira um pouco mais trabalhosa, porém seguindo orientação a objeto( maneira que o AS3 quase te obriga a fazer),

vou ver se consigo tempo e posto como fazer

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta :P

 

Eu vou testar

 

Mas primeiro de tudo... que eu to boiando até agora com todos os exemplos q eu já li...

 

 

Que diaxo de package é esse que geral cria? :S

 

Desculpa a pergunta burra....

 

Mas pra mim quem pergunta quer saber...

 

e como eu não entendo nada de AS3 isso ai é novo para mim...

 

Teria algum lugar para que eu leia e entenda como funciona???

 

Pois toda vez que coloco esse comando ai no meu Frame... do arquivo... da erro ao ler o tal do package...

 

Aparece a mensagem package cannot be nested =(

 

Será que tem como me explica como que faz? -.- ai quem sabe eu aprendendo isso ai descubro todo o resto :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro acontece pois é uma classe, não deve ser colocada no frame, você deve criar uma aquivo com o mesmo nome dela, e colocar o codigo nesse aquivo

 

o package é para organização, quando só tem ele, a classe deve ficar na pasta que o .FLA, dá uma lida aqui

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Eder

 

Meu código ficou assim

import Global;

trace(Global.palco)

function onClick(event:MouseEvent):void {
	Global.palco.carregador.visible=false	
}
bt01.addEventListener(MouseEvent.CLICK, onClick);

E funcionou perfeitamente :P

 

Sumiu depois de muito tentar entender como funciona o package eu entendi :D

 

Tem que criar arquivos de AS e nomea-los com o nome que vou importar >.< não tinha entendido isso até então :P

 

Mas ai se eu quiser colocar um removeChild ali... para não só fazer ficar invisivel... mas realmente remover teria como??

 

Pois eu coloquei

Global.palco.carregador.removeChild()

 

Ai recebi o erro

ArgumentError: Error #1063: Argument count mismatch on flash.display::Loader/removeChild(). Expected 1, got 0.

at propaganda_fla::MainTimeline/onClick()

 

Se eu colocar removeChild(carregador);

 

da o erro 1120: Access of undefined property carregador.

 

Ou seja não existe carregador ;p

 

O que eu deveria colocar ali???

 

Sorry bater tanto na mesma tecla... mas eu acho isso importante, pois vai servir para que eu consiga entender uma porrada de outras funções que eu tenho em flash AS2... para converte-las em AS3 =)

 

Se puder ajudar obrigado

 

Abraços

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.