Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di eng
    Registrato dal
    Mar 2002
    Messaggi
    1,227

    [MX] sintassi particolare...

    se i (poniamo per esempio =2) e' un numero
    scrivendo

    this["capra"+i-1]._alpha=0;

    ha un comportamento identico a:

    this["capra"+i]._alpha=0;
    ovvero
    this["capra2"]._alpha=0;

    ben differente a:

    this["capra"+(i-1)]._alpha=0;
    ovvero
    this["capra1"]._alpha=0;


    provate.

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >this["capra"+i-1]._alpha=0;
    >ha un comportamento identico a:
    >this["capra"+i]._alpha=0;
    >ovvero
    >this["capra2"]._alpha=0;

    Non mi pare...

  3. #3
    Utente di HTML.it L'avatar di eng
    Registrato dal
    Mar 2002
    Messaggi
    1,227
    ciao Nega...non sarebbe la prima volta che faccio figure
    ma nel codice finale
    codice:
    onClipEvent(load){
    	this.preload._visible=1;
    	img_start_no=55;
    	img_finish_no=120;
    	frezeed_frame_no=10;
    	salta_for=false;
    	go_head=false;
    	perc = 0;
    	tot=0;
    	i1=0;
    	i2=img_start_no;
    	for(i=img_start_no; i<=img_finish_no; i++) {
    		trace("(load)i="+i);
    //		duplicateMovieClip("empty", "capra"+i, i);
    		empty.duplicateMovieClip("capra"+i, i);
    
    //		loadMovie("img/thumb_capra/TN_vhx"+i+".JPG", this["capra"+i]);
    		this["capra"+i].loadMovie("img/thumb_capra/TN_vhx"+i+".JPG");
    
    		this["capra"+i]._alpha=0;
    		trace("(load) capra i="+i+" alpha="+ this["capra"+i]._alpha);
    
    		this["capra"+i]._x=0;
    		this["capra"+i]._y=0;
    	}
    	_root.capra_creata=true;
    	/*
    	//codice da mettere in tutti gli altri button presenti in uscita
    	if(_root.capra_creata){
    		img_start_no=55;
    		img_finish_no=120;
    		_root.capra_creata=true;
    		for(i=img_start_no; i<=img_finish_no; i++) {
    			removeMovieClip("_root.Bars.galleria.capra_mc.capra"+i);
    		}
    	}
    	*/
    }
    onClipEvent(enterFrame){
    	trace(" 1- salta_for=" + salta_for);
    	qualcuno_non_definito=false;
    	if(!salta_for){
    		tot=0;
    		for(i=img_start_no; i<=img_finish_no; i++) {
    			if(this["capra"+i].getBytesTotal()<100){
    				qualcuno_non_definito=true;
    				break;
    			}
    			tot += this["capra"+i].getBytesTotal();
    			trace("(enterFrame)capra i=" + i + " getBytesTotal=" + this["capra"+i].getBytesTotal());
    			trace("(enterFrame)i=" + i + " partial_tot_+=" + tot);
    			
    		}
    	}
    	if(!qualcuno_non_definito){
    		salta_for=true;
    		go_head=true;
    	}
    	trace("qualcuno_non_definito=" + qualcuno_non_definito);
    	trace("go_head=" + go_head);
    	trace("2 -salta_for=" + salta_for);
    	car=0;
    	if(go_head){
    		if(perc<100) {
    			for(i=img_start_no; i<=img_finish_no; i++) {
    				car += this["capra"+i].getBytesLoaded();
    				trace("(enterFrame)capra i=" + i + " getBytesLoaded=" + this["capra"+i].getBytesLoaded());
    				trace("(enterFrame)i=" + i + " partial_car_+=" + car);
    			}
    			perc = parseInt(car*100/tot);
    			this.preload.barra._xscale = perc;
    			this.preload.percentuale = perc + "%";
    			trace("(enterFrame)perc="+perc);
    		} else {
    			this.preload._visible=0;
    			trace("(enterFrame)i1="+i1);
    			trace("(enterFrame)i2="+i2);
    			if(i1 == 0){
    				this["capra"+i2]._alpha=100;
    				if(i2>img_start_no){
    					this["capra"+(i2-1)]._alpha=0;
    				}
    //				trace("(enterframe) capra i2="+i2+" alpha="+ this["capra"+i2]._alpha);				
    //				trace("(enterframe) capra i2-1="+(i2-1)+" alpha="+ this["capra"+(i2-1)]._alpha);				
    				for(i=img_start_no; i<=img_finish_no; i++) {
    					trace("(enterframe) capra i="+i+" alpha="+ this["capra"+i]._alpha);
    				}
    				i2++;
    				
    			}
    			i1++;
    			//i1 è il numero di frames di visualizzazione di ogni fotogramma
    			if(i1 == frezeed_frame_no){
    				i1=0;
    //				this["capra"+i2-1]._alpha=0;
    				if(i2 > img_finish_no){
    //					this["capra"+i2-1]._alpha=0;
    					this["capra"+img_finish_no]._alpha=0;
    					i2=img_start_no;	
    				}
    			}
    		}
    	}
    }
    di quell'esempio speditoti via mail per il quale ti avevo chiesto aiuto, le parentesi

    this["capra"+(i2-1)]._alpha=0;

    sono essenziali per i lcorretto funzionamento perche' altrimenti la sottrazione non mi viene eseguita
    ed e' come se scrivessi

    this["capra"+i2]._alpha=0;

    che fa andare in palla il mio script, perche' e' essenziale che una sola 'capra' sia visibile ogni volta e tutte le altre no.

    Te lo rispedisco ora.

    Sto combinando una delle mie ? Non vedo errore...

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    L'osservazione è giusta, è sul funzionamento del primo che ho dei dubbi.
    Il fatto è questo: quando esegui un'operazione tra tipi di dati diversi, flash converte uno dei due.
    Quindi, quando fai:

    codice:
    i = 2;
    this["capra" + i - 1]._alpha=0;
    l'espressione "capra" + i - 1 termina con una sottrazione tra una stringa ed un numero, dando NaN come risultato (nella sottrazione ha la precedenza il numero, "capra" diventa NaN - NotaNumber)
    Quando invece scrivi:

    codice:
    i = 2;
    this["capra"+(i-1)]._alpha=0;
    prima viene eseguita l'espressione (i - 1) tra parentesi, che da come risultato 1, quindi viene eseguita l'addizione "capra" + 1.
    Nell'addizione, ha la precedenza il tipo stringa, quindi 1 diventa "1", e il risultato finale è "capra1".

  5. #5
    Utente di HTML.it L'avatar di eng
    Registrato dal
    Mar 2002
    Messaggi
    1,227
    allor non avevo sbagliato l'osservazione...

    ora ho capito anche il motivo di questo 'solo apparente malfunzionamento'

    grazie

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.