- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- [Risolto] Assegnazione variabile in differenti momenti
-
Si! così ottengo più o meno lo stesso risultato che ho ottenuto io col mio script. Il problema penso sia proprio nel counter.
Praticamente quando un cavallo arriva a destinazione si ferma e il counter non lo calcola piu'. In questo modo pure la posizione verrà sbagliata.
Succede, infatti, che il primo arriva e' si piglia il numero 1 poi arriva il secondo e se lo piglia lui e cede al primo cavallo l'1! Il terzo cavallo, poi, ancora peggio, si piglia l'1 pure lui!
-
Ragazzi forse se date un'occhiata all'animazione è meglio.
Magari non riesco a spiegarmi bene :bho:
Abbiate pietà...Grazie
Pri
-
@priscilla73 said:
Ragazzi forse se date un'occhiata all'animazione è meglio.
Magari non riesco a spiegarmi bene :bho:
Abbiate pietà...Grazie
Prise i cavalli sn disposti non secondo l'ordine dell'array.. i campi di testo ti conviene numerarli cosi come hai fatto ma disporli nello stesso ordine con cui hai disposto i cavalli. altri ti sarà impossibile lavorare ocn la var i ..
-
Certo che sono disposti secondo l'ordine dell'array.
Hai dato un'occhiata al mio allegato?
E cmq mi è venuta un'idea in mente....E se al posto del testo dinamico facessi caricare come filmato esterno i numeri d'arrivo 1° 2° e 3°?
-
Senti Priscilla, ma se uso un file XML va bene lo stesso per te ?
-
Si si. va bene lo stesso!
-
faccio guadagnare un po di tempo a flepp... mi so dilettato io a farne qualche prova..
http://img530.imageshack.us/my.php?image=garaue9.swf&width=800
-
Grande Edo!
Come ci sei riuscito?
-
combinando un po il codice cercando di ottimizzare l' esigenza. certo, una tiratina d'orecchie dal buon coder flepperrr... non me la risparmio st'avolta.
to'..
a = 250; b = 200; c = 120; d = 130; e = 190; f = 160; //loadVariables("file2.txt", this); **var traguardo:Number = (882); var arrivo:Number = traguardo+150 var counter:Number = 0;** var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f); var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio); for (var i:Number = -1; i<cavalli_array.length; i++) { ** cavalli_array*._x = -250;** ** cavalli_array*.onEnterFrame = muovi;** * cavalli_array*.i = i;* muovi = function () { with (this) { ** _x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;** if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) { ** this.arrivo_ok = true; _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y}); classifica(i);** } if (Math.ceil(_x)>=arrivo) { gotoAndStop(1); ** delete onEnterFrame;** if (_root.counter>=num_cavalli) { ** frame2();** } } } }; } classifica = function (i) { ** _root.counter++; _root["c0"+(i+1)].txt.text = ".0"+counter;** }; frame2 = function () { var secondi_left = setInterval(function () { ** clearInterval(secondi_left);** _root.gotoAndStop("qualificati"); }, 3000); };
-
Accidenti! Si stravolge tutto quello che avevo fatto prima.
Ora ci provo.
Grazie
-
Lo applico al mio filmato ma i cavalli non si muovo proprio!
-
ciao priscilla.. molto probabilmente loadvariables crea qualche conflitto, è poco affidabile in flash8. ecco xchè flep ti proponeva l'integrazione xml.
In alternativa potresti sempre integrare la classe loadVars e ottimizzare ancor + il codice.
se noti io x ovviare al problema e cmq proporti l'animazione e verifica della posizione, ho associato delle variabili interne a,b,c per definire gli spostamenti.
Puoi trovare l'esempio qui
http://img159.imageshack.us/my.php?image=corsaprova02mq2.swfX realizzare cosi la simulazione sulla tua base.
rimpiazza l'istruzione del fotogramma con questastop(); a = 250; b = 200; c = 1200; d = 130; e = 190; f = 160; loadVariables("file.txt", this); var traguardo:Number = (700); var arrivo:Number = traguardo+150 var counter:Number = 0; var variabili_array:Array = new Array(a, this.b, this.c, this.d, this.e, this.f); var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio); for (var i:Number = -1; i<cavalli_array.length; i++) { cavalli_array*._x = -25 cavalli_array*.onEnterFrame = muovi; cavalli_array*.i = i; muovi = function () { with (this) { _x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12; if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) { this.arrivo_ok = true; _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y}); classifica(i); } if (Math.ceil(_x)>=arrivo) { delete onEnterFrame; if (_root.counter>=num_cavalli) { frame2(); } } } }; } classifica = function (i) { _root.counter++; trace(i+":"+counter) _root["c0"+(i+1)].text = ".0"+counter; }; frame2 = function () { var secondi_left = setInterval(function () { clearInterval(secondi_left); _root.gotoAndStop("qualificati"); }, 3000); };
un saluto
-
Innanzi tutto, grazie moltissime Edo. Ho applicato il tuo script. I cavalli arrivano e lasciano la loro posizione nei punti desiderati ma...
I cavalli nel precedente script (quello di Flep) partivano, correvano piu' veloci o piu' lenti in base al loro punteggio e, se il loro punteggio non superva il valore del traguardo, si fermavano.
Inoltre nel tuo filmato i cavalli partono veloci a man mano che arrivano al traguardo, rallentano...si puo' evitare?Scusami
Grazie per la pazienzaPri
-
Sto facendo con XML
-
ci sono delle variabili x controllare la velocità e la lunghezza dello spostamento. a. b c.... che ora ho definito sul fotogramma.
se vuoi impostare come era prima... bisogna ripristinare in parte lo script che simula il movimento..
provo a ripristinarlo..
stop();
a = 250;
b = 200;
c = 1200;
d = 130;
e = 190;
f = 160;
loadVariables("file.txt", this);
var traguardo:Number = (700);
var arrivo:Number = traguardo+150
var counter:Number = 0;
var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
for (var i:Number = -1; i<cavalli_array.length; i++) {
cavalli_array*._x = -25
cavalli_array*.onEnterFrame = muovi;
cavalli_array*.i = i;
muovi = function () {
with (this) {
** _x = _x+(variabili_array*/200);**
// _x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) { this.arrivo_ok = true; _root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y}); classifica(i); } if (Math.ceil(_x)>=arrivo) { delete onEnterFrame; if (_root.counter>=num_cavalli) { frame2(); } } } };
}
classifica = function (i) {
_root.counter++;
trace(i+":"+counter)
_root["c0"+(i+1)].text = ".0"+counter;
};
frame2 = function () {
var secondi_left = setInterval(function () {
clearInterval(secondi_left);
_root.gotoAndStop("qualificati");
}, 3000);
};
-
Ora l'andamento dei cavalli e' ok ma arriva il primo, si ferma, gli altri no e dopo 3 secondi si va al secondo frame....
-
try now. Vedi parti in grassetto.
stop();
a = 250;
b = 200;
c = 120;
d = 130;
e = 190;
f = 160;
//loadVariables("file2.txt", this);
var traguardo:Number = (700);
var arrivo:Number = traguardo+150;
var counter:Number = 0;
var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
for (var i:Number = -1; i<cavalli_array.length; i++) {
cavalli_array*._x = -250;
cavalli_array*.onEnterFrame = muovi;
cavalli_array*.i = i;
muovi = function () {
with (this) {
_x = Math.min(arrivo, _x+(variabili_array*/20));
//_x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;
if (Math.ceil(_x)>=traguardo && this.arrivo_ok == undefined) {
this.arrivo_ok = true;
_root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
classifica(i);
}
if (Math.ceil(_x)>=arrivo) {
delete onEnterFrame;
if (_root.counter>=cavalli_array.length-1) {
frame2();
}
}
}
};
}
classifica = function (i) {
_root.counter++;
_root["c0"+(i+1)].text = ".0"+counter;
};
frame2 = function () {
var secondi_left = setInterval(function () {
clearInterval(secondi_left);
_root.gotoAndStop("qualificati");
}, 3000);
};
-
Mi spiego meglio. Se il traguardo e' a 750 (dove finisce lo schermo) e un cavallo ha 200 di punteggio, ad un certo punto (diciamo a un po' meno della meta' dello stage) si dovrebbe fermare.
-
scusami non credevo fosse questo l'obiettivo anche xxchè non avevo seguito il tuo primo post di riferimento
prova cosi allora
stop();
a = 250;
b = 200;
c = 120;
d = 130;
e = 190;
f = 160;
//loadVariables("file2.txt", this);
var traguardo:Number = (750);
var arrivo:Number = traguardo+150;
var counter:Number = 0;
var variabili_array:Array = new Array(this.a, this.b, this.c, this.d, this.e, this.f);
var cavalli_array:Array = new Array(this.f_blu, this.f_rosso, this.f_verde, this.f_giallo, this.f_viola, this.f_arancio);
for (var i:Number = -1; i<cavalli_array.length; i++) {
** cavalli_array*._x = -250;**
cavalli_array*.onEnterFrame = muovi;
cavalli_array*.i = i;
muovi = function () {
with (this) {
_x = Math.min(variabili_array*, _x+(variabili_array*/20));
//_x = _x+(Math.min(arrivo, _x+(variabili_array*))-_x)/12;
if (Math.ceil(_x)>=variabili_array* && this.arrivo_ok == undefined) {
this.arrivo_ok = true;
_root.attachMovie("posizione", "c0"+(i+1), i, {_x:traguardo, _y:_y});
classifica(i);
}
if (Math.ceil(_x)>=variabili_array*) {
delete onEnterFrame;
if (_root.counter>=cavalli_array.length-1) {
frame2();
}
}
}
};
}
classifica = function (i) {
_root.counter++;
_root["c0"+(i+1)].text = ".0"+counter;
};
frame2 = function () {
var secondi_left = setInterval(function () {
clearInterval(secondi_left);
_root.gotoAndStop("qualificati");
}, 3000);
};
-
Eccolo: