• Super User

    Ciao Gandalf,
    usa sempre il solito metodo, quando duplichi una clip fai un push in un array, poi crei un array di stringhe che contiene tutti gli url. Poi:

    
    var Strings:Array=new Array('http://www.flepstudio.com','http://www.actionscript.ws','http://www.adobe.com');
    for(var i:Number=0;i<Clips.length;i++)
    {
        Clips*.onPress=function():Void
        {
            getURL(Strings*);
        }
    }
    
    

  • User Attivo

    grande FLEP :re:

    ehm 1 piccolo problema .... l'oggetto clips in realtà ha al suo interno un oggetto button (che viene duplicato in automatico al duplicate del MC che lo contiene ...)


  • User Attivo

    @Flep said:

    >
    var Strings:Array=new Array('http://www.flepstudio.com','http://www.actionscript.ws','http://www.adobe.com');
    for(var i:Number=0;i<Clips.length;i++)
    {
        Clips*.onPress=function():Void
       {
           getURL(Strings*);
       }
    }
    
    >```
    
     
    Quella parte di codice dove la scateno ?????:? [click here for my problem ](http://www.ckacademy.it/default.html):D
    thanks

  • Super User

    dentro l'array gli metti quel bottone 🙂


  • Super User

    @Gandalf said:

    Quella parte di codice dove la scateno ?????:? click here for my problem 😄
    thanks

    In che senso ?


  • User Attivo

    Io non ho un oggetto BUTTON dentro un MClip ... dopo aver duplicate per bene tutti i MClips ... mi ritrovo a dover far puntare ogni singolo BUTTON ad una URL diversa ... l'oggetto BUTTON si autoduplica da solo al duplicate del MClip che lo contiene ..... 😞

    
    function CaricaDownloads() {
     var LoadDwn:LoadVars;
     //Array per gli url (file da scaricare)
     var ArrUrls:Array;
     //Array per le righe
     var ArrDwn:Array;
     ArrDwn = new Array();
     ArrUrls= new Array();
     LoadDwn = new LoadVars();
     LoadDwn.onLoad = function(success) {
      var Dwn_Tot:Number = LoadDwn.totDwnl;
      var path:String= "./public/downloads/"
      var nomeFile:String;
      var estensioneFile:String;
      var iconX:Number = -25;
      // coordinata X delle icone
      var iconY:Number = 74;
      // coordinata Y delle icone
      _root.Wind_Downloads_mc.N_Downloads.text = "Total downloads --> "+Dwn_Tot;
      for (n=1; n<=Dwn_Tot; n++) {
       mc = _root.Wind_Downloads_mc.MainCointener_mc.CointFiglio_mc.SingleDownl_mc.duplicateMovieClip("SingleDownl_mc"+n, n);
       mc._y = ((mc._height*n)-90);
       nomeFile=LoadDwn["NomeFile"+n];
       //Icone in base a estensione file
       estensioneFile = LoadDwn["fExt"+n];
       switch (estensioneFile) {
       case "xls" :
        var xlsIco:MovieClip = mc.createEmptyMovieClip(xlsIco, mc.getNextHighestDepth);
        xlsIco.loadMovie("./images/ICO_XLS.jpg", mc);
        xlsIco._x = iconX;
        xlsIco._y = iconY;
        break;
       case "doc" :
        var docIco:MovieClip = mc.createEmptyMovieClip(docIco, mc.getNextHighestDepth);
        docIco.loadMovie("./images/ICO_DOC.jpg", mc);
        docIco._x = iconX;
        docIco._y = iconY;
        break;
       case "pdf" :
        var pdfIco:MovieClip = mc.createEmptyMovieClip(pdfIco, mc.getNextHighestDepth);
        pdfIco.loadMovie("./images/ICO_PDF.jpg", mc);
        pdfIco._x = iconX;
        pdfIco._y = iconY;
        break;
        //End Switch Icone
       }
       **ArrDwn.push(_root.Wind_Downloads_mc.MainCointener_mc.CointFiglio_mc.SingleDownl_mc.BttnDownload_ist);**
    ** ArrUrls.push(path+nomeFile+"."+estensioneFile);**
     
       mc.AddDate.text = LoadDwn["AddDate"+n];
       mc.ModDate.text = LoadDwn["ModDate"+n];
       mc.Descrizione.text = LoadDwn["Descrizione"+n];
       mc.Autore.text = LoadDwn["Autore"+n];
      }
      **for(var c:Number=0;c<ArrDwn.length;c++){**
    ** ArrDwn.onPress=function():Void**
    ** {**
    ** trace("Percorso completo = "+path+nomeFile+"."+estensioneFile);**
    **  getUrl(path+nomeFile+"."+estensioneFile);**
    ** }**
    ** }**
    };
     LoadDwn.load("ReadDownload.asp");
    }
    
    

    non succede nulla non mi esegue le righe (in grassetto nero) .... 😞


  • Super User

    @Gandalf said:

    Io non ho un oggetto BUTTON dentro un MClip ... dopo aver duplicate per bene tutti i MClips ... mi ritrovo a dover far puntare ogni singolo BUTTON ad una URL diversa ... l'oggetto BUTTON si autoduplica da solo al duplicate del MClip che lo contiene ..... 😞
    Appunto, scusa ma il codice che ti ho dato fa proprio quello. Cioè fai il push nell'array dellaclip che duplichi. Poi ad esempio se ti serve arrivare al bottone dentro quella clip basta recuperalro con la giusta path:

    
    Clips*.myButton.getURL('Strings*');
    
    

  • User Attivo

    @Flep said:

    Poi ad esempio se ti serve arrivare al bottone dentro quella clip basta recuperalro con la giusta path:

    >
    Clips*.myButton.getURL('Strings*');
    
    >```
     
    Giusto era quello che mi mancava .... sapere di arrivare ad un sotto-oggetto anke da un Array :sbav: grazie FLEP.
     
    Segue..... (problema)
    

    for(var c:Number=0;c<ArrDwn.length;c++){
    ArrDwn.BttnDownload_ist.onRelease=function():Void
    {
    trace("C="+c); // il trace restituisce 5 .... troppo tardi 😞
    trace("Percorso completo = "+ArrUrls);
    //getUrl("<A href="http://"+ArrUrls[c">http://"+ArrUrls);
    }
    }

     
    Flep sembra che il contatore c nel ciclo si trovi alla fine quando eseguo la riga
    getUrl(blablabla + ArrUrls); che faccio uso un altra var x:Number ?

  • Super User

    Prova ad inserire break; dopo la riga del getURL.
    Altrimenti devi assegnare un id al bottone che premi, cioè assegnare una proprietà in runtime al bottone, ma coi bottoni non puoi farlo perchè l classe Button non è dinamica.
    Dovresti utilizzare delle movieclips al posto dei bottoni.


  • User Attivo

    c'è nessuno ? 😞 non riesco a venirne fuori ... stò impazzendo !!!! :s

    thanks


  • User Attivo

    @Flep said:

    Prova ad inserire break; dopo la riga del getURL.
    Altrimenti devi assegnare un id al bottone che premi, cioè assegnare una proprietà in runtime al bottone, ma coi bottoni non puoi farlo perchè l classe Button non è dinamica.
    Dovresti utilizzare delle movieclips al posto dei bottoni.

    aarghhhh ......... 😮 ma se faccio cambia tipo di oggetto, da button a movieClip da Flash, funziona .... o devo rifare tutto da zero ... ? :arrabbiato: :arrabbiato: :arrabbiato:

    P.S.
    A questo punto mi chiedo a cosa servono + gli oggetti Button se il MovieClip lo sostituisce in tutto e per tutto .... :sbonk:


  • Super User

    Button esiste solo per semplificare tempi e animazioni dei bottoni.
    Per applicazioni serie e importnti non lo si usa mai (almeno io).

    Dovresti cambiare i bottoni, se li converti in movieclips dipende dall'animazione che hanno...


  • User Attivo

    Ok ... convertito ... solo che ora mi manca tanto l'evento MouseOver ... e MouseOut ... dove cambiamo il valore dell'._alpha al bottone ... come posso ovviare nel MovieClip ? :sbav:

    Il cursore a forma di manina ok .... fatto ma gli eventi di sopra ... qualche escamotage 😄 ?

    thnks


  • User Attivo
    
    on (rollOver) 
    {
     this._alpha=30;
    }
    
    

    ogni tanto mi perdo in un bicchier d'acqua ... 😄


  • User Attivo

    @Flep said:

    .... , ma coi bottoni non puoi farlo perchè l classe Button non è dinamica.
    Dovresti utilizzare delle movieclips al posto dei bottoni.

    
    //ArrDwn = Array coi MC dentro
    //ArrUrls = Array coi percorsi su cui puntare ...
    //BttnTraspr_mc = istanza del mc che sostituisce 
    //                       il vecchio bottone
    for (var c:Number = 0; c<ArrDwn.length; c++) {
       ArrDwn.BttnTraspr_mc.onRelease = function():Void  {
        trace("C="+c);
        trace("Percorso completo = "+ArrUrls);
        getURL(ArrUrls);
       };
      }
    
    

    ehm .... manco i trace mi fà .... sembra non eseguire per nulla il ciclo !!!!! Come se lo saltasse ... :mmm:


  • Super User

    Controlla
    ArrDwn.length


  • User Attivo

    @Flep said:

    Controlla
    ArrDwn.length

    
    for (var c:Number = 0; c<ArrDwn.length; c++) {
       trace("Lunghezza ArrDwn = "+ArrDwn.length);
       ArrDwn.BttnTraspr_mc.onRelease = function():Void  {
        trace("C="+c);
        trace("Percorso completo = "+ArrUrls);
        getURL(ArrUrls);
       };
      }
    
    

    ripete per 5 volte questo : Lunghezza ArrDwn = 5

    P.S.
    Se tolgo ArrDwn**.BttnTraspr_mc**.onRelease cioè se scrivo solo ArrDwn.onRelease funzia ....


  • Super User

    Dipende dalle paths che hai messo...


  • User Attivo

    no quelle funzionano ... 😞 funzionavano anke prima quando avevo un button al posto della movieclip ... il problema sembra relativo alla movieclip che simula il bottone trasparente ma non capisco in quale modo !!!! 😢


  • User Attivo

    ecco il rigo infame .... avevo messo questa action per far venir fuori il cursore a forma di mano e forse contrastava con la function definita nel codice di prima 😢

    
    onRelease=function(){}
    
    

    scusate all