• Bannato User Attivo

    cavolo non riesco a far nulla......la maschera è ok.....


  • User Attivo

    @Gamesrulez.com said:

    cavolo non riesco a far nulla......la maschera è ok.....

    😢:dotto: visto .... ? Allora è 1 problema + serio di quello che sembrava :arrabbiato: può trattarsi di un problema di profondità ? Dato che la procedura ciclica mentre duplica i MovieClip assegna anke il valore Depth ..... e la maschera invece la creo io manualmente ... Flash la mette sotto anzichè metterla sopra i MovieClip interessati ?!?!?! :mmm:

    tnks all
    Gandalf


  • Bannato User Attivo

    @Gandalf said:

    😢:dotto: visto .... ? Allora è 1 problema + serio di quello che sembrava :arrabbiato: può trattarsi di un problema di profondità ? Dato che la procedura ciclica mentre duplica i MovieClip assegna anke il valore Depth ..... e la maschera invece la creo io manualmente ... Flash la mette sotto anzichè metterla sopra i MovieClip interessati ?!?!?! :mmm:

    tnks all
    Gandalf

    a questo punto è l'unica cosa che mi viene da pensare........perchè altrimenti non so davvero perchè non va


  • Super User

    Perchè non la crei in runtime quella maschera...


  • User Attivo

    @Flep said:

    Perchè non la crei in runtime quella maschera...

    Concordo ... ottima pensata ... :mmm: ma come si fà ? Cioè quale depth assegno ? La creo prima di tutti i MClip(duplicati) o alla fine ?
    Ehm si accettano abbozzi di codice per la creazione di una maskera a runtime .... 😄

    tnks all
    Gandalf


  • Super User
    
    var clip:MovieClip;//questa è la tua clip che devi mascherare
    var mask:MovieClip;
    
    mask=_root.createEmptyMovieClip('mask_mc',_root.getNextHighestDepth());
    mask.beginFill(0xFF0000,100);
    mask.moveTo(0,0);
    mask.lineTo(100,0);
    mask.lineTo(100,100);
    mask.lineTo(0,100);
    mask.lineTo(0,0);
    mask.endFill();
    
    mask.swapDepths(clip.getDepth()+1);
    clip_mc.setMask(mask);
    
    

    Questo codice disegna un quadrato di 100X100 che viene utilizzato come maschera. Cambia le dimensioni in base alle tue necessità.


  • User Attivo

    Ah grazie mille FLEP 😉 dunque devo utilizzare una ulteriore MClip che faccia da maskera ... e non una semplice forma ... ok !!!
    Domandina(1) : Le posizioni x e y sono relative allo stage principale ? O allo stage dove vien creata la MClip ?
    Domandina(2) : L'istruzione swapDepths cosa fà di preciso ?
    Domandina(3) : Mi stà sorgendo un dubbio .... dato che stò realizzando il sito in maniera erratissima (passo dopo passo) senza una base di progetto ho paura di perdermi in un groviglio di livelli senza controllo, esiste una funzione nel tool, che mi mostri tutti i livelli ?

    tnks all
    Gandalf :fumato:


  • Super User

    @Gandalf said:

    Ah grazie mille FLEP 😉 dunque devo utilizzare una ulteriore MClip che faccia da maskera ... e non una semplice forma ... ok !!!
    Domandina(1) : Le posizioni x e y sono relative allo stage principale ? O allo stage dove vien creata la MClip ?
    Domandina(2) : L'istruzione swapDepths cosa fà di preciso ?
    Domandina(3) : Mi stà sorgendo un dubbio .... dato che stò realizzando il sito in maniera erratissima (passo dopo passo) senza una base di progetto ho paura di perdermi in un groviglio di livelli senza controllo, esiste una funzione nel tool, che mi mostri tutti i livelli ?

    tnks all
    Gandalf :fumato:

    1. Se intendi x e y di moveTo e lineTo , quelle sono le coordinate per poter disegnare, magari dai un occhio alla guida di Flash e vedi come lavorano, 'purtroppo' sono molto impegnato.
      2.swapDepths scambia il depth della maschera con quello della clip subito sopra alla clip da mascherarae in modo che sei certo che la maschera è un depth sopra la clip da mascherare. Non è obbligatorio ma consigliato.
      3.Per mostrare tutti i livelli:
      o fai un trace delle tue clip utilizzando trace(my_clip.getDepth());
      oppure nelle opzioni 'list objects' o 'list variables' dell'swf puoi controllare tutto.

  • User Attivo

    @Flep said:

    1. Se intendi x e y di moveTo e lineTo , quelle sono le coordinate per poter disegnare, magari dai un occhio alla guida di Flash e vedi come lavorano, 'purtroppo' sono molto impegnato.
      2.swapDepths scambia il depth della maschera con quello della clip subito sopra alla clip da mascherarae in modo che sei certo che la maschera è un depth sopra la clip da mascherare. Non è obbligatorio ma consigliato.
      3.Per mostrare tutti i livelli:
      o fai un trace delle tue clip utilizzando trace(my_clip.getDepth());
      oppure nelle opzioni 'list objects' o 'list variables' dell'swf puoi controllare tutto.

    Grande FLEP :vaiii: grazie mille

    Gandalf:fumato:


  • User Attivo

    Ahahahahahaha :eheh: grandioso .... praticamente ho dovuto swappare il depth di una ClipMaschera creata a mano e piazzata bene ... swappata di 100 e tutto funzia ... naturalmente il problema che ci rimane altro non è che una giungla di livelli messi a casaccio ... :sbav: quindi mi aspetto che + avanti nell'implementazione del sito di ritrovarmi lo stesso problema !!!!
    Cmq per il momento ho risolto e l'istruzione (gentilmente consigliatami da FLEP) è :

    mask.swapDepths(clip.getDepth()+1); // io ho abbondato a +100

    tnks all
    Gandalf :fumato:


  • User Newbie

    Ciao a tutti inanzitutto visto che sono nuovo...

    vi espongo subito il mio problema...

    dopo aver caricato con un loadMoive una jpg su un Mc prestabilto, lo smaskero dinamicamente su un onEnterFrame, questo avviene per ogni "ipotetica sezione del sito" conl'idea di avere un bg differente per ogni sezione.
    Vorrei però implementare questa funzione con un duplicate Mc in modo tale che ogni volta che una foto si smaskera non lo faccia sul bg del swf. ma lo faccia al di sopra dell'ultima presente, rendendo più interessante l'effetto...
    ho dei problemi però con il duplicate: l'idea era quella di duplicare MC che contiene la jpg prima della smaskeramento successivo e una volta smaskerata la nuova foto, eliminarlo o renderlo _visible=false.

    ecco il codice incriminato!!!

    MovieClip.prototype.loada = function(Location, collegamento) {
    //// tanica è mc che fa il load movie
    tanica._alpha = 0;
    _root.visualizza._alpha = 100;
    _root.tanica.loadMovie(Location);
    //loading
    _level0.onEnterFrame = function() {
    var total = parseInt(tanica.getBytesTotal());
    var loaded = parseInt(tanica.getBytesLoaded());
    perc = Math.round((loaded/total)*100);
    _root.visualizza._alpha = (100-perc);
    _root.visualizza.bar._xscale = (100-perc);
    _root.visualizza.percentuale = perc+"%";
    if (total == loaded) {
    ///////
    ///////
    _root.visualizza._alpha = 0;
    var w = tanica._width+space;
    var h = tanica._height+space;
    border.smaskera(w, h, Location, collegamento);
    delete this.onEnterFrame;
    }
    };
    };
    };
    **MovieClip.prototype.smaskera = function(w, h, Location, collegamento) {
    var maskClip:MovieClip = tanica.createEmptyMovieClip("mask_mc", 20);
    //////?????
    ** var DuplyClip:MovieClip = tanica.duplicateMovieClip(tanica, "duply", 10);
    DuplyClip._alpha = 100;

    //////?????
    this.onEnterFrame = function() {
    tanica._alpha = 100;
    with (maskClip) {
    // costrusico la maskera delle stesse dimensioni del jpg caricato...
    beginFill(0xFF00FF, 100);
    moveTo(0, 0);
    lineTo(tanica._width, 0);
    lineTo(tanica._width, tanica._height);
    lineTo(0, tanica._height);
    lineTo(0, 0);
    endFill();
    }
    tanica.setMask(maskClip);
    ////attivo la maskeratura
    var mask_tween:Object = new Tween(maskClip, "_yscale",Strong.easeOut, 0, 100, 1.3, true);
    mask_tween.onMotionStopped = function() {
    carica(collegamento);
    DuplyClip._alpha = 0;
    };

        delete this.onEnterFrame;
    };
    

    };

    HELP!!!!!!!!!!!!!!!! grazie e spero possa essere d'aiuto e approfondimento sul tema già aperto...


  • Super User

    Ciao ebugrafik e benvenuto nel forum GT 🙂

    Il codice che hai postato purtroppo mi complica un po la vita in quanto ci sono 3-4 passi che utilizzano dei metodi obsoleti.

    Personalmente non uso mai duplicateMovieClip in quanto da troppi problemi con i depths.

    Non potresti caricare un'immagine sopra l'altra?
    Quella che sta sopra a quella che deve scomparire la carichi _alpha=0; e poi la fai entrare piano piano.
    Spero di non aver capito male 🙂


  • User Attivo

    obsoleto ..... ? Come sarebbe a dire obsoleto ? E io che stò a impazzire da settimane :sbav: per far funzionare una benedetta maschera ... !!! Mi dite quale metodo allora può sostituire l'obsoleto DuplicateMClip ?! :mmm:

    Thanks all


  • Super User

    Non mi riferivo a duplicateMovieClip come metodo obsoleto.
    Mi riferivo a:

    var mask_tween:Object = new Tween(maskClip, "_yscale",Strong.easeOut, 0, 100, 1.3, true);
    mask_tween.onMotionStopped = function() {
    carica(collegamento);
    DuplyClip._alpha = 0;
    };

    e a questo:
    MovieClip.prototype.loada = function(Location, collegamento)

    Ripeto ,
    **consiglio strettamente personale:
    **il metodo duplicateMovieClip mi ha sempre dato svariati problemi con i depths per cui sconsiglio di usarlo.
    Se qualcuno di voi lo vuole utilizzare comunque, si legga la guida Actionscript per cortesia in quanto io non lo uso mai. 🙂


  • User Attivo

    Mmmm..... quindi dato che di problemi con le maschere non ne ho pochi .... cosa mi consigli come alternativa al DuplicateMClip ? Se il CLIP di esempio ha + di 1 oggetto all'interno ?!?! :mmm: Non è troppo impegnativo a livello di righe ? 🙂

    thanks
    Gandalf


  • Super User

    Io sto facendo un po di confusione...
    Ma tu sei anche ebugrafik?


  • User Attivo

    no no sono gandalf e basta 😄 il ebugrafik non sò che fine abbia fatto 🙂 ........

    thanks


  • Super User

    Praticamente invece di duplicare la clip, la crei all'interno di un ciclo.


  • User Attivo

    Mmmmm .... ok ci stò forse te l'ho già chiesto ma se puoi ... mi rifaresti un piccolo esempiuccio .... 🙂

    thnks
    gandalf


  • Super User

    Ad esempio:
    hai la tua clip in libreria.
    Con un ciclo fai un attachMovie della clip dalla libreria allo Stage.

    
    for(var i:Number=0;i<6;i++)
    {
        var clip:MovieClip=_root.attachMovie('mc_clip','clip_'+i+'_mc',_root.getNextHighestDepth());
    }