Flash: realizzare un almanacco.

Di: agrios | 26/09/2020 18:08:26
Sto cercando di creare un calendario almanacco che giornalmente dovrebbe aggiornarsi con una serie di informazione (es. accadde oggi - nati oggi ecc.)
Il mio problema è riuscire a caricare i vari simboli giorno per giorno.
Tramite uno switch riesco a caricare i primi trentuno giorni ma poi non posso fare in modo che il mese successivo carico i nuovi simboli perchè quando faccio il cocatenamento non posso assegnare come identificatore un nome che già esiste... il problema è che l'identificatore deve avere lo stesso nome del day.
È talmente incasinata sta cosa che non so neanche se riesco a spiegarla
Grazie mille!!!
Questo è l'ActionScript che non ho ancora completato per tutti i mesi:
stop();
now=new Date()
day=now.getDate()
month=now.getMonth()
switch (month){
case 0:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 1:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 2:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 3:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 4:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 5:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 6:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 7:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 8:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 9:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
case 10:
thing.attachMovie(day, "111", "211", "311", "411", "511", "611", "711", "811", "911", "1011", "1111", "1211", "1311", "1411", "1511", "1611", "1711", "1811", "1911", "2011", "2111", "2211", "2311", "2411", "2511", "2611", "2711", "2811", "2911", "3011", "3111", 2);
case 11:
thing.attachMovie(day, "110", "210", "310", "410", "510", "610", "710", "810", "910", "1010", "1110", "1210", "1310", "1410", "1510", "1610", "1710", "1810", "1910", "2010", "2110", "2210", "2310", "2410", "2510", "2610", "2710", "2810", "2910", "3010", "3110", 2);
}

Risposte



Ciao,
partendo dal presupposto che tu abbia messo all'interno dei vari clip, le varie info da visualizzare per ogni giorno, dovresti chiarirmi una cosa.
Dal tuo script vedo solo 31 clip, che si ripetono per tutti i mesi, quindi istanzi sempre lo stesso clip, relativo al giorno, per tutti i mesi dell'anno.
365 clip contro i tuoi 31, per avere contenuti diversi per ogni giorno.
Se è così non vedo qual è il problema!
Se invece devi avere contenuti diversi per tutti i 365 giorni dell'anno, allora occorrono 365 clip.

Di: goku | 26/09/2020 18:08:26


In realtà lo script non è completo... devo ancora terminare di creare i clip per tutti i giorni dell'anno.
È possibile che esista una soluzione meno laboriosa di questa?
Grazie

Di: agrios | 26/09/2020 18:08:26


Sicuramente ci sono diversi modi per realizzare questo tuo lavoro, però se hai 365 contenuti diversi, devi per forza crearli tutti!

Di: goku | 26/09/2020 18:09:26


Il mio problema non è creare i simboli....
Il mio problema è riuscire a far apparire il simbolo giusto nel giorno giusto.
Con Attach Movie lo so fare per un mese ma poi il mese successivo ho dei problemi..

Di: agrios | 26/09/2020 18:09:26


Allora creando 365 simboli, potresti risolvere il problema con qualche if, mi spiego meglio, i simboli nella libreria potresti chiamarli:
lunedi_gennaio; martedi_gennaio ecc.
lunedi_febbraio; martedi_febbraio ecc.
a questo punto non devi fare altro che far corrispondere il nome di concatenamento con quello del day, come hai scritto tu, con un if verifichi il mese attuale ed in base a questo richiami il simbolo.
Se sei riuscito a risolvere il problema dei giorni della settimana che si ripetono durante il corso del mese (4 lunedì, 4 martedì ecc.), non capisco perché questo ti ha dato problemi, il principio è lo stesso.

Di: goku | 26/09/2020 18:09:26


Mi ha dato problemi perchè non posso dare due volte lo stesso nome di concatenamento...

Di: agrios | 26/09/2020 18:09:26


Lo avevo capito, tu invece hai capito quello che ti ho suggerito?

Di: goku | 26/09/2020 18:09:26


Il problema non è con i giorni (lunedì martedì ecc.) ma è con i numeri (1, 2, 3, ecc.)
Lo script che ho fatto è collegato all'orologio del computer e richiama il simbolo che ha lo stesso nome del day... quindi il giorno "1" richiamerà il simbolo che si chiama "1".
Il problema è che di giorni "1" in un anno ce ne sono 12... e non posso certo cambiare il nome dei giorni nell'orologio del pc!!
Ehm... non so se mi sono spiegato!!

Di: agrios | 26/09/2020 18:09:26


Cercherò di essere più chiaro!
Tu oltre a conoscere il "day", conosci anche il mese, partendo da questo presupposto puoi richiamare tutti i Movie Clip che vuoi.
Es. day=1, mese=gennaio, richiami il simbolo 1
day=1, mese=febbraio, richiami il simbolo 2 etc.
basta fare un controllo combinato giorno-mese.
Quindi dovrai creare solo, si fa per dire, 365 simboli diversi con altrettanti nomi diversi, poi basta manipolare il "valore" della variabile, presuppongo, day, per richiamare i vari simboli.
Più di così non posso aiutarti, bisognerebbe vedere com'è strutturato il tuo script.
Ti faccio un semplice esempio:
se il mese è gennaio, richiami i simboli da 1 a 31, fin qui tutto ok,
adesso consideriamo il caso della data: lunedì 01/02/05, da quanto ho capito il tuo script richiamerebbe il simbolo 1, allora basta controllare il mese, in questo caso febbraio,
if (mese=="febbraio"){
attach.....(day+100 .....)
}
e ancora:
if (mese=="marzo"){
attach.....(day+200 .....)
}
Ovviamente i tuoi simboli saranno nominati con i numeri da 1 a 31 per gennaio, da 100 a 130 per febbraio e via dicendo.
Spero di esserti stato di aiuto questa volta.

Di: goku | 26/09/2020 18:09:26


Stavolta penso proprio che mi hai dato una gran dritta... grazie mille!!
Non appena ho un pò di tempo, faccio un test!!
Grazie

Di: agrios | 26/09/2020 18:11:26


Ho fatto così:
stop();
now=new Date()
day=now.getDate()
if(month=="10"){
thing.attachMovie(day+1000, "1001", "1002", "1003", "1004",
"1005", "1006", "1007", "1008", "1009", "1010", "1011", "1012",
"1013", "1014", "1015", "1016", "1017", "1018", "1019", "1020",
"1021", "1022", "1024", "1025", "1026", "1027", "1028", "1029",
"1030", "1031", 2)}
if(month=="11"){
thing.attachMovie(day+1100, "1101", "1102", "1103", "1104",
"1105", "1106", "1107", "1108", "1109", "1110", "1111", "1112",
"1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120",
"1121", "1122", "1124", "1125", "1126", "1127", "1128", "1129",
"1130", "1131", 2)}
Ma non funziona, dove ho sbagliato?

Di: agrios | 26/09/2020 18:11:26


stop();
now=new Date();
day=now.getDate();
mese=now.getMonth();
if(mese=="10"){
thing.attachMovie(day+1000,2);
}

Di: goku | 26/09/2020 18:11:26