Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Ciclo per pulsanti.

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113

    Ciclo per pulsanti.

    Ciao a tutti,
    avrei bisogno di un piccolo aiuto su come sviluppare un ciclo per assegnare delle azioni ad una serie di 9 pulsanti, in modo da non doverle associare uno ad uno...

    Il codice (di un signolo pulsante) è questo:

    import flash.filters.BlurFilter;
    var filtro01:BlurFilter = new BlurFilter(0, 0, 2);
    Btn01.Box01.filters = [filtro01];
    Btn01.onRelease = function() {
    getURL("url01.aspx");
    };
    Btn01.onRollOver = function() {
    this.onEnterFrame = function() {
    filtro01.blurX += (30-filtro01.blurX)/5;
    filtro01.blurY = filtro01.blurX;
    Btn01.Box01.filters = [filtro01];
    };
    };
    Btn01.onRollOut = function() {
    this.onEnterFrame = function() {
    filtro01.blurX += (0-filtro01.blurX)/5;
    filtro01.blurY = filtro01.blurX;
    Btn01.Box01.filters = [filtro01];
    if (filtro01.blurX<1) {
    delete this.onEnterFrame;
    }
    };
    };

    Ovviamente così com'è sul singolo pulsante funziona perfettamente.
    In pratica dovrei associare questo codice ai vari Btn02, Btn03 ecc.
    Inoltre, ogni onRelease function avrà un getUrl con indirizzi diversi...!

    Premetto che ci ho già provato (ciclo for, array per le url ecc.) ma mi sono incartato innumerevoli volte (tra l'altro con i filters rompe ancora di più...)

    Grazie mille per (speriamo) l'aiuto.

  2. #2
    io trasformerei i bottono in clip e poi creerei un prototypo ed un ciclo for nel seguente modo

    Non sono certo dei controlli per il delete degli enterFrame.

    Sul RollOver quando lo cancelli ?? solo quando vai in RollOut ??

    Cmq provalo

    PS un oggetto singolo che sta dentro un oggetto numerato non serve numerare anch'esso.



    codice:
    import flash.filters.BlurFilter;
    
    MovieClip.prototype.myButtons=function(){
    
             this.onRelease = function(){getUrl(this.IDurl)}
             this.onRollOver = function(){
                   this.onEnterFrame=function()
                     this.filtro.blurX += (30-this.filtro.blurX)/5;
                     this.filtro.blurY = this.filtro.blurX
                     this.Box01.filters = this.filtro
                   }
             }
             this.onRollOut = function(){
                   this.onEnterFrame=function(){ 
                     this.filtro.blurX += (0-this.filtro.blurX)/5;
                     this.filtro.blurY = this.filtro.blurX
                     this.Box01.filters = this.filtro
                     if(this.filtro.blurX < 1) {delete this.onEnterFrame}
                    }
              }
    }
        
    for(I=1;I<10;I++){
    
       this["Btn"+I].filtro = new BlurFilter(0,0,2)
       this["Btn"+I].Box01.filters = this["Btn"+I].filtro 
       this["Btn"+I].IDurl = "url0"+I+".aspx"
       this["Btn"+I].myButtons() 
    
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113
    Innanzitutto grazie.
    Allora, diciamo che:
    - i buttons era già degli mc, quindi ok
    - si, in realtà l'enterFrame lo eliminavo solo sul rollOut
    - ok per il discorso della numerazione degli oggetti annidati, ora si chiama solo Box senza alcuna numerazione supplementare

    Ho provato.. purtroppo non funziona.
    Posso dirti però che il ciclo assegna correttamente le URL, di conseguenza anche la numerazione dei pulsanti. E' il filtro che non dà segni di vita.
    Ho corretto alcune imprecisioni, ora il codice che ho è il seguente:

    codice:
    import flash.filters.BlurFilter;
    MovieClip.prototype.myButtons = function() {
    	this.onRelease = function() {
    		getURL(this.IDurl);
    	};
    	this.onRollOver = function() {
    		this.onEnterFrame = function() {
    			this.filtro.blurX += (30-this.filtro.blurX)/5;
    			this.filtro.blurY = this.filtro.blurX;
    			this.Box.filters = this.filtro;
    		};
    	};
    	this.onRollOut = function() {
    		this.onEnterFrame = function() {
    			this.filtro.blurX += (0-this.filtro.blurX)/5;
    			this.filtro.blurY = this.filtro.blurX;
    			this.Box.filters = this.filtro;
    			if (this.filtro.blurX<1) {
    				delete this.onEnterFrame;
    			}
    		};
    	};
    };
    for (I=1; I<10; I++) {
    	this["Btn0"+I].filtro = new BlurFilter(0, 0, 2);
    	this["Btn0"+I].Box.filters = this["Btn0"+I].filtro;
    	this["Btn0"+I].IDurl = "url0"+I+".aspx";
    	this["Btn0"+I].myButtons();
    }
    Altri suggerimenti?
    Grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113

    Sorgente.

    Per aiutarvi ad aiutarmi...
    Potete scaricare da qui il sorgente.
    (formato Flash CS3)

    Sul rollOver il Box sfuma, mentre la scritta test rimane leggibile.

    Grazie ancora

  5. #5
    scusa giusto per capire se ho capito
    al rollover il box si sfoca ma la scritta no
    e al rollout torna normale?

  6. #6
    aspetta un momento adesso vedo che lavori in AS3 ?? !!!

    quello che ho scritto io è in as2 ... io non conosco as3, potrebbe cambiare qualcosa.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113
    Esattamente.
    Quindi:
    - la scritta non cambia mai
    - il Box si sfoca in rollOver e torna a fuoco in rollOut

    se hai bisogno di altre indicazioni chiedi pure.

  8. #8
    lavora in cs3 ma l' actionscript è AS 2
    ...che ne pensate di questo?
    Codice PHP:
    stop();
    import flash.filters.BlurFilter;
    import mx.transitions.Tween;
    import mx.transitions.easing.*;
    var 
    rilevaRoll:Boolean=true
    var vel:Number=30
    MovieClip
    .prototype.myButtons = function() {
        
    this.onRelease = function() {
            
    getURL(this.IDurl);
            
    trace(this._name);
            
    rilevaRoll=false
            sfoca
    (this.Box)
        };
        
    this.onRollOver = function() {
                
    rilevaRoll=true
                sfoca
    (this.Box)
        };
        
    this.onRollOut = function() {
                
    rilevaRoll=false
                sfoca
    (this.Box)
        };
    };
    for (
    I=1I<10I++) {
        
    this["Btn0"+I].Box.filters this["Btn0"+I].filtro;
        
    this["Btn0"+I].IDurl "url0"+I+".aspx";
        
    this["Btn0"+I].myButtons();
    }
    //funzione sfocatura
    function sfoca(target_mc:MovieClip){
        var 
    valoreBlur:Number=10
        
    var quality:Number=5
    var sfocatura:BlurFilter=new BlurFilter(blurX,blurY,quality)
    if(
    rilevaRoll){
    var 
    sfocaX:Tween=new Tween(sfocatura,"blurX",Strong.easeOut,0,valoreBlur,vel,false)
    var 
    sfocaY:Tween=new Tween(sfocatura,"blurY",Strong.easeOut,0,valoreBlur,vel,false)
    sfocaY.onMotionChanged=function(){
        
    target_mc.filters=[sfocatura]}
    }
    else{
    var 
    sfocaX:Tween=new Tween(sfocatura,"blurX",Strong.easeOut,valoreBlur,0,vel,false)
    var 
    sfocaY:Tween=new Tween(sfocatura,"blurY",Strong.easeOut,valoreBlur,0,vel,false)
    sfocaY.onMotionChanged=function(){
        
    target_mc.filters=[sfocatura]}}
    }
    //funzione sfocatura 

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    113
    No, il file è relaizzato con Flash CS3, ma il linguaggio impostato e AS2.

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da rempox
    aspetta un momento adesso vedo che lavori in AS3 ?? !!!

    quello che ho scritto io è in as2 ... io non conosco as3, potrebbe cambiare qualcosa.
    quello del primo post non è as3

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.