Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    2

    nome pulsanti indicizzato

    Ciao a tutti è il mio primo intervento in questo forum.. lo seguo però da tanto (utilissimo!).
    Comunque, averi una domanda un po' banalotta. Riguarda un problema che mi sta facendo impazzire (sono alle prime armi con AS). Praticamente, devo realizzare una specie di fiera virtuale in cui ho più pulsanti (circa un centinaio saranno) che richiamano uno stand. Su questo stand sono poi caricate 6 immagini da un file xml.
    Questo è il primo passaggio che sono riuscito a risolvere:

    il progetto è in AS2
    "holder" è il nome istanza del MC vuoto
    "caption" nome istanza testo dinamico della descrizione
    "stand1" nome istanza pulsante

    codice:
    var holder:Array = new Array();
    var caption:Array = new Array();
    
    
    x.onLoad = function(success) {
    	var photos:Array = this.firstChild.childNodes;
    	for(i=0;i<photos.length;i++) {
    		urls.push(photos[i].attributes.url);
    		captions.push(photos[i].attributes.caption);
    	}
    	holder.loadMovie(urls[0]);
    	caption.text = captions[0];
    }
    
    x.load("data.xml");
    
    
    stand1.onRelease = function() {
    		n=0;
    	for(q=0;q<=6;q++) {
    		_root["holder"+q].loadMovie(urls[n-1]);
    		_root["caption"+q].text = captions[n-1];
    		n++;
    	}
    }
    
    stand2.onRelease = function() {
    		n=6;
    	for(q=0;q<=6;q++) {
    		_root["holder"+q].loadMovie(urls[n-1]);
    		_root["caption"+q].text = captions[n-1];
    		n++;
    	}
    }
    come vedete, non posso permettermi di riscrivere ogni volta il blocco di funzioni per ogni istanza dei pulsanti.
    ho provato a fare quindi così (sapendo che i pulsanti avranno tutti nome istanza stand1, stand2, stand3, ecc..)

    codice:
    var x:XML = new XML();
    x.ignoreWhite = true;
    
    var urls:Array = new Array();
    var captions:Array = new Array();
    var r:Number;
    
    x.onLoad = function(success) {
    	var photos:Array = this.firstChild.childNodes;
    	for(i=0;i<photos.length;i++) {
    		urls.push(photos[i].attributes.url);
    		captions.push(photos[i].attributes.caption);
    	}
    	holder.loadMovie(urls[0]);
    	caption.text = captions[0];
    }
    
    x.load("data.xml");
    
    _root["stand"+r].onRelease = function() {
    	n=(r*6)-6;
    	for(q=0;q<=6;q++) {
    		_root["holder"+q].loadMovie(urls[n-1]);
    		_root["caption"+q].text = captions[n-1];
    		n++;
    	}
    }
    ma purtroppo non funzia...
    non riesco a riferirmi ai pulsanti in maniera "automatica"...
    avete qualche idea?

  2. #2
    in effetti è un po lunga scrverli tutti.
    Suggerirei di inserirli in un array prima (supponendo ke ne siano 100 e ke si kiamino stand1 stand2 ecc):
    Codice PHP:
    var Pulsanti:Array=[]
    var 
    Main:MovieClip=this;
    for(var 
    a:int=1;a<101;a++){

    Pulsanti.push(Main["stand"+a])

    poi per assegnare le azioni con un giro solo:
    Codice PHP:

    for(var a:int=0;a<Pulsanti.lenght;a++){
    Pulsanti[a].onRelease=pressed
    }
    function 
    pressed(){
    trace(this._name)
    //azioni


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.