• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

watt

AS 3.0 Unload

4 mensagens neste tópico

Boa tarde!

criei um projecto em falsh onde consigo carregar as imagen, mas agora keria que elas desaparecem-se

já tive de volta do Nomeloader.unload(); e removeChild(nomeloader); e nada.... alguem me pode explica como se faz???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para a imagem não ser "renderizada" basta retirá-la da display list através de um dos métodos disponíveis do objecto que contem o loader (imagem).

Procura na documentação o que melhor serve para o teu caso.

exemplo:

var containerObj:Sprite = new Sprite();
var childObj:Sprite = new Sprite();
childObj.name = "abc";
containerObj.addChild(childObj);

//Remove o display object referenciado por childObj
containerObj.removeChild(childObj);
//Remove o display object situado numa determinada depth
containerObj.removeChildAt(0);
//getChildByName procura na display list por um objecto que tenha o name igual a "abc" e a devolve a sua referência
containerObj.removeChild(containerObj.getChildByName("abc"));

Porem o objecto continua a existir em memória, podendo ser adicionado à display list novamente se for preciso.

Se o que queres é mesmo retirar o objecto da memória precisas de eliminar todas as referências que possam existir para que as rotinas do garbage collector o marquem e limpem posteriormente.

+ info:

http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html

http://blogs.adobe.com/aharui/2007/03/garbage_collection_and_memory.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não ... nao esta a ir ...

tenho...

package 
{
import flash.display.*;
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.text.TextField;
import flash.system.Security;
import flash.display.Loader;
    import flash.events.*;
    import flash.net.URLRequest;
import flash.display.DisplayObject;


public class poker extends MovieClip
{
	var card1:Loader, card2:Loader, card3:Loader, card4:Loader, card5:Loader,cardsplayers:Loader;


	public function loadCard(str:String):void
	{
	var playercard:Array = new Array("", "", "");
	playercard = str.split("*");

	var card:String = playercard[0];

	var url:String = "http://localhost/img/cards/"+ playercard[1] +".png";
	var urlReq:URLRequest = new URLRequest(url);

		switch(card)
		{
		case "mycard1":
			mycard= new Loader();
			mycard.load(urlReq);
			mycard.x = 10;
			mycard.y = 459;
			addChild(mycard);
			break;
		case "mycard2":
			mycard2= new Loader();			
			mycard2.load(urlReq);
			mycard2.x = 65;
			mycard2.y = 459;
			addChild(mycard2);
			break;
...
                     }
               }------------> até aki td bem...

... mais á frente pa remover tenho .......

public function clearCards():void
	{
		removeChild(card1);
}


        }

e nao acontece nada... temos lá a carta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta algo do género:

case "mycard1":
			mycard= new Loader();
			mycard.load(urlReq);
			mycard.x = 10;
			mycard.y = 459;
			addChild(mycard);
                               [b] mycard.name = "mycard1";[/b]
			break;

public function clearCards():void
	{
		removeChild([b]getChildByName("mycard1")[/b]);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora