- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Elenco dinamico in Flash+XML
-
Si potrebbe fare, solo che la cosa è più complessa in quanto devi caricare dei files esterni e dargli un preload per ognuno, quindi bisognerebbe lavorare per classi. In più devi fare un push in un Array di ogni immagine caricata per tenerne traccia e richiamarla quando e come ti occorre.
Mi servirebbe una mezzoretta per farti un esempio ma al momento mezzora per me è come trovare una pepita d'oro in una stalla
-
@Flep said:
Si potrebbe fare, solo che la cosa è più complessa in quanto devi caricare dei files esterni e dargli un preload per ognuno, quindi bisognerebbe lavorare per classi. In più devi fare un push in un Array di ogni immagine caricata per tenerne traccia e richiamarla quando e come ti occorre.
Mi servirebbe una mezzoretta per farti un esempio ma al momento mezzora per me è come trovare una pepita d'oro in una stalla
Direi che sei fantastico! Ottimi consigli che girero' subito agli amici del forum per vedere se qualcuno puo' darmi una mano a renderli operativi (anche a pagamento s'intende...), poi magari vi passo il codice (A GRATIS!!!) come ringraziamento...
Speriamo qualcuno riesca a sviluppare il codice!
-
Bè se cerchi qualcuno che te la faccia a pagamento, io sono disponibile.
-
@Flep said:
Bè se cerchi qualcuno che te la faccia a pagamento, io sono disponibile.
Be', ti chiedo scusa se non l'avevo specificato... sono in contatto con un altro utente ma vista la tua esperienza potrei affidare a te la cosa!
Ci sentiamo in privato, OK? Ti mando subito un PM!
-
Hey Flep, sono tornato!!! Sei contento?
Vorrei fare un'implementazione allo script, solo che come al solito non sono capace di ottenere quello che voglio, oppure ottengo cose diverse..La domanda è: sarebbe possibile fare in modo che cliccando su un brano compaia qualcosa, un pallino, un'altoparlante, una qualsiasi cosa per far capire che quella traccia sta andando? L'ideale sarebbe un movieclip, io ho provato con attachMovie ma non ne sono uscito.. Soprattutto perchè quando l'utente clicca su un brano dopo averne già ascoltato uno il movieclip dovrebbe sparire. L'idea è una cosa simile..
http://www.djjosephb.com/esempio.html
Grazie tante.
Ciao ciao
Cecco
-
Ciao,
metti all'inizio dello script:
var clip_mc:MovieClip;Poi nell'azione on Press scrivi:
clip_mc.removeMovieClip(); clip_mc.attachMovie('nome_clip','nuovo_nome_clip',_root.getNextHighestDepth()); clip_mc._x=m._x; clip_mc._y=m._y;
Sistema la _x e la _y a tuo piacere
-
Non so se sbaglio qualcosa, ma non va..
Io ho fatto un movieclip e gli ho dato l'identificatore circle_mc
Poi ho fatto le modifiche che mi hai detto e il codice è diventato questo:var clips_array:Array = new Array(); var posizioni_array:Array = new Array(); var artisti_array:Array = new Array(); var titoli_array:Array = new Array(); var url_array:Array = new Array(); var container:MovieClip = this.createEmptyMovieClip('container_mc', this.getNextHighestDepth()); var clip_mc:MovieClip; var ln:Number = 18; var spacer:Number = 10; var s:Sound; var xml:XML = new XML(); for (var i:Number = 0; i<ln; i++) { var newY:Number = i*(container._height+spacer); var duplicate:MovieClip = container.createEmptyMovieClip('clip_'+i+'_mc', container.getNextHighestDepth()); setUpContainer(duplicate); duplicate._y = duplicate._height*i+10*i; duplicate.id = i; setEvent(duplicate); clips_array.push(duplicate); var field_0:TextField = duplicate.createTextField('positione_txt', duplicate.getNextHighestDepth(), 5, 2, 0, 0); var field_1:TextField = duplicate.createTextField('artista_txt', duplicate.getNextHighestDepth(), 5, 2, 0, 0); var field_2:TextField = duplicate.createTextField('titolo_txt', duplicate.getNextHighestDepth(), 5, 2, 0, 0); setText(field_0); setText(field_1); setText(field_2); field_1._x = field_0._x+field_0._width+40; field_2._x = 230; } xml.ignoreWhite = true; xml.onLoad = function(ok:Boolean) { if (ok) { var node:XMLNode = this.firstChild; var n:Number = node.childNodes.length; for (var i:Number = 0; i<n; i++) { posizioni_array.push(node.childNodes*.attributes['posizione']); artisti_array.push(node.childNodes*.attributes['artista']); titoli_array.push(node.childNodes*.attributes['titolo']); url_array.push(node.childNodes*.attributes['url']); } initText(); } else { trace('XML error!'); } }; xml.load('produzioni/dance/dance.xml'); function initText() { for (var i:Number = 0; i<clips_array.length; i++) { clips_array*.positione_txt.text = posizioni_array*; clips_array*.artista_txt.text = artisti_array*; clips_array*.titolo_txt.text = titoli_array*; } } function setUpContainer(mc:MovieClip):Void { mc.beginFill(0x99943E, 80); mc.lineTo(440, 0); mc.lineTo(440, 20); mc.lineTo(0, 20); mc.lineTo(0, 0); mc.endFill(); } function setText(t:TextField):Void { t.setNewTextFormat(getFormat()); t.multiline = false; t.selectable = false; t.autoSize = true; t.embedFonts = true; } function getFormat():TextFormat { var format:TextFormat = new TextFormat(); format.font = "myfont"; format.color = 0xFFFFFF; format.size = 8; return (format); } function setEvent(m:MovieClip):Void { m.onPress = function():Void { s.stop(); s = new Sound(); s.loadSound(url_array[this.id], true); s.start(); clip_mc.removeMovieClip(); clip_mc.attachMovie('circle_mc', 'circle'+i+'_mc', _root.getNextHighestDepth()); clip_mc._x = m._x+32; clip_mc._y = m._y+3; }; }
Ma niente.. Cosa posso fare?
Grazie, ciao.
-
Questo non va bene:
'circle'+i+'_mc'la i è undefined, non sei dentro un ciclo.
Fai così:
dai nome identificatore 'mc_circle' e nuovo nome 'circle_mc'
-
Ok, fatto.. Non va
Non compare nulla, è come se non l'avessi nemmeno aggiunto.
Ed ora??? Non riesco proprio ad uscirne..
-
Fai dei trace.
Cerca di capire dove è il problema.Scrivi
s.stop();
s = new Sound();
s.loadSound(url_array[this.id], true);
s.start();
clip_mc.removeMovieClip();
clip_mc.attachMovie('circle_mc', 'circle'+i+'_mc', _root.getNextHighestDepth());
trace(clip_mc);
clip_mc._x = m._x+32;
clip_mc._y = m._y+3;
-
Già fatto... Mi restituisce undefined.
Ma sei sicuro che questo
var clip_mc:MovieClip;
vada bene così? Io e le variabili non siamo proprio amici amici, ma a me sembra che manchi qualcosa.. Altrimenti cosa può essere?
-
Controlla l'identificatore perchè la variabile va benissimo
-
Niente, l'identificatore è ok..
Se ti va posto un link con tutto zippato, io non capisco cosa può essere sbagliato.Ciao
-
cosa c'è scritto nell'identificatore ?
-
Quello che mi hai suggerito tu.. mc_circle
-
no, chiamalo circle_mc e funzionerà
ps: vedi questa riga:
clip_mc.attachMovie('circle_mc', 'circle'+i+'_mc', _root.getNextHighestDepth());
il primo parametro è il nome dell'identificatore
-
@Flep said:
ps: vedi questa riga:
clip_mc.attachMovie('circle_mc', 'circle'+i+'_mc', _root.getNextHighestDepth());
il primo parametro è il nome dell'identificatoreL'avevo capito questo, ma visto che tu hai detto anche questo..
Questo non va bene:
'circle'+i+'_mc'la i è undefined, non sei dentro un ciclo.
Fai così:
dai nome identificatore 'mc_circle' e nuovo nome 'circle_mc'..Io l'avevo modificata così. E comunque anche se la rimetto come nel caso 1 non va un tubo.
-
Così funziona:
function setEvent(m:MovieClip):Void { m.onPress = function():Void { s.stop(); s = new Sound(); s.loadSound(url_array[this.id], true); s.start(); clip_mc.removeMovieClip(); clip_mc=_root.createEmptyMovieClip('mc_circleContainer',_root.getNextHighestDepth()); clip_mc.attachMovie('mc_circle', 'circle'+clip_mc.getNextHighestDepth()+'_mc', clip_mc.getNextHighestDepth()); clip_mc._x = m._x+32; clip_mc._y = m._y+3; }; }
Tieni l'identificatore mc_circle.
-
Yeeeeeeeeeeeees!!!!!! Grazie mille
Cecco