Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite Galera!!
Há muito tempo não trabalhava com Flash... Estava bitolado nos .NET da vida....
Porém, pintou um JOB para montar um joguinho de vestir uma boneca em Flash, o esquema é bem parecido com um quebra-cabeças, nada muito complicado.
Montei o Flash, está funcionando. Mas tem um bug que não consegui entender.
Vou tentar explicar:
Objetivo do arquivo: Montar uma boneca e salvar a configuração da roupa em um DB.
Como funciona: É só clicar na boneca ou na roupa e arrastar para o box amarelo.
Problema: Depois da boneca montada, quando é acionada a opção de "Finalizar", mesmo depois de ser direcionado para outro frame os MCs continuam no palco.
Obs.: Todo o arquivo ainda é um estudo, as ilustrações e o layout são apenas para simulação.
Além da minha dúvida, se puderem criticar e dar dicas para melhorar o código, ficarei muito grato.
Abaixo segue o código AS2:
//FRAME 1
stop();
#include "mc_tween2.as"
var boneca:String = "";
var roupa:String = "";
var conjunto:String = "";
mcBalvo._alpha = 0;
pos_mcBalvo_x = mcBalvo._x
pos_mcBalvo_y = mcBalvo._y
function geral() {
//BONECAS ----------------------------------------
var pos_mcB1_x = mcB1._x;
var pos_mcB1_y = mcB1._y;
var pos_mcB2_x = mcB2._x;
var pos_mcB2_y = mcB2._y;
var pos_mcB3_x = mcB3._x;
var pos_mcB3_y = mcB3._y;
function iniciaDrag(objeto) {
objeto.swapDepths(objeto.getNextHighestDepth());
startDrag(objeto);
}
function acao(objeto, pos_x, pos_y, alvo_x, alvo_y) {
objeto.swapDepths(objeto.getNextHighestDepth());
stopDrag();
if (!objeto.hitTest(mcPalco)) {
objeto.slideTo(pos_x, pos_y);
} else {
var num_atual = objeto._name.substring(3, 4)
var i:Number = 0
for (i=0; i<5; i++) {
if (i != num_atual) {
var mcAtual = eval("mcB"+i);
var pos_x_ant = eval("pos_mcB"+i+"_x")
var pos_y_ant = eval("pos_mcB"+i+"_y")
mcAtual.slideTo(pos_x_ant, pos_y_ant);
}
}
boneca = "B"+num_atual;
conjunto_total(boneca);
objeto.slideTo(alvo_x, alvo_y);
}
}
this.mcB1.onPress = function() {
iniciaDrag(mcB1)
};
this.mcB2.onPress = function() {
iniciaDrag(mcB2)
};
this.mcB3.onPress = function() {
iniciaDrag(mcB3)
};
this.mcB1.onRelease = function() {
acao(mcB1, pos_mcB1_x, pos_mcB1_y, pos_mcBalvo_x, pos_mcBalvo_y);
};
this.mcB2.onRelease = function() {
acao(mcB2, pos_mcB2_x, pos_mcB2_y, pos_mcBalvo_x, pos_mcBalvo_y);
};
this.mcB3.onRelease = function() {
acao(mcB3, pos_mcB3_x, pos_mcB3_y, pos_mcBalvo_x, pos_mcBalvo_y);
};
//ROUPAS ----------------------------------
var pos_mcR1_x = mcR1._x;
var pos_mcR1_y = mcR1._y;
var pos_mcR2_x = mcR2._x;
var pos_mcR2_y = mcR2._y;
var pos_mcR3_x = mcR3._x;
var pos_mcR3_y = mcR3._y;
var pos_mcR4_x = mcR4._x;
var pos_mcR4_y = mcR4._y;
var pos_mcRalvo_x = 352;
var pos_mcRalvo_y = 442;
var contagem:Number = 1000;
function iniciaDrag2(objeto) {
contagem = contagem + 1
objeto.swapDepths(contagem);
startDrag(objeto);
}
function acao2(objeto, pos_x, pos_y, alvo_x, alvo_y) {
contagem = contagem + 1
objeto.swapDepths(contagem);
stopDrag();
if (!objeto.hitTest(mcPalco)) {
objeto.slideTo(pos_x, pos_y);
} else {
var num_atual = objeto._name.substring(3, 4)
var i = 0
for (i=0; i<5; i++) {
if (i != num_atual) {
var mcAtual = eval("mcR"+i);
var pos_x_ant = eval("pos_mcR"+i+"_x")
var pos_y_ant = eval("pos_mcR"+i+"_y")
mcAtual.slideTo(pos_x_ant, pos_y_ant);
}
}
roupa = "R"+num_atual
conjunto_total(roupa)
objeto.slideTo(alvo_x, alvo_y);
}
}
this.mcR1.onPress = function() {
iniciaDrag2(mcR1)
};
this.mcR2.onPress = function() {
iniciaDrag2(mcR2)
};
this.mcR3.onPress = function() {
iniciaDrag2(mcR3)
};
this.mcR4.onPress = function() {
iniciaDrag2(mcR4)
};
this.mcR1.onRelease = function() {
acao2(mcR1, pos_mcR1_x, pos_mcR1_y, (pos_mcRalvo_x-2.5), pos_mcRalvo_y);
};
this.mcR2.onRelease = function() {
acao2(mcR2, pos_mcR2_x, pos_mcR2_y, pos_mcRalvo_x, (pos_mcRalvo_y+1));
};
this.mcR3.onRelease = function() {
acao2(mcR3, pos_mcR3_x, pos_mcR3_y, (pos_mcRalvo_x-1), (pos_mcRalvo_y+2));
};
this.mcR4.onRelease = function() {
acao2(mcR4, pos_mcR4_x, pos_mcR4_y, pos_mcRalvo_x,(pos_mcRalvo_y+3));
};
}
function conjunto_total() {
conjunto = boneca + "/" + roupa
}
geral();
conjunto_total();
//FRAME 2
stop();
var todos:String = conjunto;
Se for útil para alguém, segue o link para fazer o download dos arquivos fontes:
Desde já obrigado e um ótimo final de semana.
Michael C.
Carregando comentários...