Ciao a tutti, vorrei creare delle finestre che vengono aperte cliccando su dei pulsanti ma ogni singola finestra deve avere le seguenti caratteristiche:
-le finestra si deve ingrandire con una determinata velocità , passare da un alpha 0 a 100 e posizionarsi al centro dello Stage.
-una volta che si è ingrandita è possibile trascinarla dove si vuole
-cliccando sul pulsante di chiusura deve ritornare gradualmente dalla posizione finale a quella iniziale.
-l'animazione deve essere il + corretta possibile.

Io ho già fatto lo script ma la finestra si sposta verso il centro e si chiude in modo incorretto.

Chiedo aiuto ai grandi GURU di ActionScript!!!!



/*Le istanze sono: -finestra_mc (la finestra)
-base_mc (la base per trascinare la finestra
all'interno di finestra_mc)
-apertura_btn (il pulsante di apertura presente
sullo Stage)
-chiusura_btn (il pulsante di chiusura
all'interno di finestra_mc e allo stesso livello
di base_mc)*/

var posIniX:Number = finestra_mc._x;
var posIniY:Number = finestra_mc._y;
var posFinX:Number = Stage.width/2;
var posFinY:Number = Stage.height/2;
var stato:String;
finestra_mc._alpha = 0;
finestra_mc.chiusura_btn.enabled = false;
apertura_btn.onRelease = function() {
apertura_btn.enabled = false;
stato = "apertura";
};
function trascinamento() {
if (stato == "apertura") {
finestra_mc.base_mc.onPress = function() {
finestra_mc.startDrag();
};
finestra_mc.base_mc.onRelease = function() {
finestra_mc.stopDrag();
posFinX = finestra_mc._x;
posFinY = finestra_mc._y;
};
}
}
finestra_mc.chiusura_btn.onRelease = function() {
stato = "chiusura";
finestra_mc.chiusura_btn.enabled = false;
};
onEnterFrame = function () {
if (stato == "apertura") {
if (finestra_mc._alpha<=100) {
finestra_mc._alpha += 5;
}
if (finestra_mc._y<=posFinY) {
finestra_mc._y += 5;
}
if (finestra_mc._x<=posFinX) {
finestra_mc._x += 5;
}
if (finestra_mc._xscale<=300) {
finestra_mc._xscale += 10;
}
if (finestra_mc._yscale<=300) {
finestra_mc._yscale += 10;
}
if (finestra_mc._alpha>=100) {
finestra_mc.chiusura_btn.enabled = true;
// posFinX = finestra_mc._x;
// posFinY = finestra_mc._y;
trascinamento();
}
}
if (stato == "chiusura") {
if (finestra_mc._alpha>0) {
finestra_mc._alpha -= 5;
}
if (finestra_mc._y>posIniY) {
finestra_mc._y -= 5;
}
if (finestra_mc._x>posIniX) {
finestra_mc._x -= 5;
}
if (finestra_mc._xscale>0) {
finestra_mc._xscale -= 10;
}
if (finestra_mc._yscale>100) {
finestra_mc._yscale -= 10;
}
if (finestra_mc._alpha<=0) {
apertura_btn.enabled = true;
posFinX = Stage.width/2;
posFinY = Stage.height/2;
}
}
};