Target de Movieclip importado de XML
Boas Amigos,
tou com um problema na criação do target de um movieclip importado de XML.
Trata-se de um sistema drag and drop, em que ele nao está a fazer o drop, nao reconhece o target.
Vou colocar aqui abaixo o codigo pa ver se me ajudam a detectar o erro. Brigado.
/ Contador do numero de peças /
var counter:Number = 0;
/ Alinha o arquivo para o canto superior esquerdo /
stage.align = StageAlign.TOP_LEFT;
/ Desabilitamos o dimencionamento do arquivo /
stage.scaleMode = StageScaleMode.NO_SCALE;
/ Variavel que armazena o MovieClip selecionado /
var alvo:MovieClip;
/ Variável que armazena a quantidade de itens do XML /
var total:Number = new Number();
/ Criamos uma instancia da Classe XML /
var xml:XML = new XML();
/ Criamos uma instancia da Classe URLLoader /
var arquivo:URLLoader = new URLLoader();
var arquivo2:URLLoader = new URLLoader();
var arquivotarget:URLLoader = new URLLoader();
/ Posição inicial dos movieclips /
var startX:Number;
var startY:Number;
/ Carregamos o XML /
arquivo.load(new URLRequest("reis.xml"));
arquivotarget.load(new URLRequest("reis.xml"));
arquivo2.load(new URLRequest("roupas.xml"));/ Adicionamos um event listener chamando a função arquivoOk /
arquivo.addEventListener(Event.COMPLETE, arquivoOk);
arquivo2.addEventListener(Event.COMPLETE, arquivo2Ok);
arquivotarget.addEventListener(Event.COMPLETE, arquivoTargetOk);
/ Função relativa ao rei, chamada assim que o XML é carregado /
function arquivoOk(event:Event):void {
/* Armazenamos os dados do XML na instancia da Classe XML */
xml = new XML(event.target.data);
/* Armazenamos o total de itens */
total = xml.rei1.length();
/* Chama a função carrega das imagens verdadeiras */
carrega();
}
/ Função relativa as roupas falsas, chamada assim que o XML é carregado /
function arquivo2Ok(event:Event):void {
/* Armazenamos os dados do XML na instancia da Classe XML */
xml = new XML(event.target.data);
/* Armazenamos o total de itens */
total = xml.roupas.length();
/* Chama a função carrega das imagens falsas */
carrega2();
}
/ Função relativa ao target, chamada assim que o XML é carregado /
function arquivoTargetOk(event:Event):void {
/* Armazenamos os dados do XML na instancia da Classe XML */
xml = new XML(event.target.data);
/* Armazenamos o total de itens */
total = xml.rei1.length();
/* Chama a função carrega do target */
carregatarget();
}
/ Função que carrega as imagens verdadeiras /
function carrega() {
/* Criamos um laço para percorrer todos os itens do XML */
for (var i=0; i<total; i++) {
/* Criamos um MovieClip */
var mov:MovieClip = new MovieClip();
/* Adicionamos um event listener para quando o rato for clicado no MovieClip */
mov.addEventListener(MouseEvent.MOUSE_DOWN, mcPress);
mov.addEventListener(MouseEvent.MOUSE_UP, mcRelease);
/* Armazena o número do nó do XML */
mov.id = i;
/* Criamos uma instancia da Classe Loader */
var loader:Loader = new Loader();
/* Desabilitamos o rato */
loader.mouseEnabled = false;
/* Carregamos a imagem */
loader.load(new URLRequest(xml.rei1[i].camisola));
/* Modificamos a posição da imagem */
loader.x = 10;
loader.y = 200;
/* Adicionamos um event listener para saber quando terminou de carregar a imagem */
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderOk);
/* Adiciona a imagem ao MovieClip criado */
mov.addChild(loader);
/* Adiciona o MovieClip ao palco */
addChild(mov);
}
}
/ Função que carrega as imagens falsas /
function carrega2() {
/* Criamos um laço para percorrer todos os itens do XML */
for (var i=0; i<total; i++) {
/* Criamos um MovieClip */
var mov5:MovieClip = new MovieClip();
/* Adicionamos um event listener para quando o mouse for clicado no MovieClip */
mov5.addEventListener(MouseEvent.MOUSE_DOWN, mcPress);
mov5.addEventListener(MouseEvent.MOUSE_UP, mcRelease);
/* Armazena o número do nó do XML */
mov5.id = i;
/* Criamos uma instancia da Classe Loader */
var loader5:Loader = new Loader();
/* Desabilitamos o rato */
loader5.mouseEnabled = false;
/* Carregamos a imagem */
loader5.load(new URLRequest(xml.roupas[i].camisola));
/* Modificamos a posição da imagem */
loader5.x = 5;
loader5.y = 5;
/* Adicionamos um event listener para saber quando terminou de carregar a imagem */
loader5.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderOk2);
/* Adiciona a imagem ao MovieClip criado */
mov5.addChild(loader5);
/* Adiciona o MovieClip ao palco */
addChild(mov5);
}
}
/ Função que carrega as imagens com transparencia, o target /
function carregatarget() {
/* Criamos um laço para percorrer todos os itens do XML */
for (var i=0; i<total; i++) {
/* Criamos um MovieClip */
var targetmov:MovieClip = new MovieClip();
/* Adicionamos um event listener para quando o rato for clicado no MovieClip */
targetmov.addEventListener(MouseEvent.MOUSE_DOWN, mcPress);
targetmov.addEventListener(MouseEvent.MOUSE_UP, mcRelease);
/* Armazena o número do nó do XML */
targetmov.id = i;
/* Movieclip com transparencia */
targetmov.alpha = 0.1;
/* Criamos uma instancia da Classe Loader */
var targetloader:Loader = new Loader();
/* Desabilitamos o rato */
targetloader.mouseEnabled = false;
/* Carregamos a imagem */
targetloader.load(new URLRequest(xml.rei1[i].camisola));
/* Modificamos a posição da imagem */
targetloader.x = 502;
targetloader.y = 202;
/* Adicionamos um event listener para saber quando terminou de carregar a imagem */
targetloader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderOk3);
/* Adiciona a imagem ao MovieClip criado */
targetmov.addChild(targetloader);
/* Adiciona o MovieClip ao palco */
addChild(targetmov);
}
}
/ Função chamada quando a imagem verdadeira termina de ser carregada /
function loaderOk(event:Event):void {
/* Criamos uma referencia para a imagem */
var loader:Loader = event.target.loader;
/* Criamos uma referencia ao MovieClip */
var mc:MovieClip = MovieClip(loader.parent);
}
/ Função chamada quando a imagem falsa termina de ser carregada /
function loaderOk2(event:Event):void {
/* Criamos uma referencia para a imagem */
var loader:Loader = event.target.loader;
/* Criamos uma referencia ao MovieClip */
var mc:MovieClip = MovieClip(loader.parent);
}
/ Função chamada quando a imagem do target, termina de ser carregada /
function loaderOk3(event:Event):void {
/* Criamos uma referencia para a imagem */
var loader:Loader = event.target.loader;
/* Criamos uma referencia ao MovieClip */
var mc:MovieClip = MovieClip(loader.parent);
}
/ Função chamada quando clica com o rato sobre o MovieClip /
function mcPress(event:MouseEvent):void {
/* Identificamos o alvo */
alvo = MovieClip(event.target);
reply_txt.text = "";
event.target.startDrag(true);
event.target.parent.addChild(event.target);
startX = event.target.x;
startY = event.target.y;
/* Coloca o alvo a frente dos outros MovieClips */
addChild(alvo);
/* Movimenta o MovieClip */
alvo.startDrag();
}
/ Função chamada quando soltamos o botão esquerdo do rato /
function mcRelease(event:MouseEvent):void {
/* Paramos de movimentar o MovieClip */
event.target.stopDrag();
var myTargetName:String = "target" + event.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (event.target.dropTarget != null && event.target.dropTarget.parent == myTarget){
reply_txt.text = "Bom trabalho!";
event.target.removeEventListener(MouseEvent.MOUSE_DOWN, mcPress);
event.target.removeEventListener(MouseEvent.MOUSE_UP, mcRelease);
event.target.buttonMode = false;
event.target.x = myTarget.x;
event.target.y = myTarget.y;
counter++;
} else {
reply_txt.text = "Tente de novo!";
event.target.x = startX;
event.target.y = startY;
}
if(counter == 1){
reply_txt.text = "Parabéns, completou o puzzle!!!";
}
}Discussão (2)
Carregando comentários...