- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- [Risolto] Assegnazione variabile in differenti momenti
-
@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:
-
-
Ahahah! Grande! Pero'.....ancora non ci siamo! Dove sono i punteggi dei cavalli? Ho un gran bisogno di contrallare il punto esatto in cui si fermeranno.
Immaginate questa gara come una lotta fra agenzie immobiliari. Chi fa piu' punti nel mese va avanti fino a raggiungere il traguardo e guadagnarsi il passaggio alla fase successiva. I punteggi arrivano giornalmente e le agenzie potranno vedere la loro posizione semplicemente vedendo l'animazione in qualsiasi momento...
Solo alla fine del mese poi arriveranno al traguardo, e vinceranno i primi 3..