Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309

    Creare sfumature in AS3

    Salve a tutti, ho trovato il metodo per fare una sfumatura in AS3, il problema che io vorrei fare una sfumatura con alfa a 0 nei 2 lati in modo da applicarla come maschera, ma non ho capito come posso farla, vi posto il codice che ho trovato per creare sfumature, qualcuno sa metterci mano?

    Codice PHP:
    import flash.geom.*
    import flash.display.*

    var 
    fillType:String GradientType.LINEAR;
    var 
    colors:Array = [0xFF00000x0000FF];
    var 
    alphas:Array = [11];
    var 
    ratios:Array = [1255];
    var 
    matr:Matrix = new Matrix();
    matr.createGradientBox(10020000);
    var 
    spreadMethod:String SpreadMethod.PAD;
    this.graphics.beginGradientFill(fillTypecolorsalphasratiosmatrspreadMethod);  
    this.graphics.drawRect(0,0,200,100); 
    In pratica se guardate l'immagine, i 2 lati bianchi devono essere ad alfa 0 e il centro nero, in modo tale da poter mettere questa sfumatura come maschera di un MC e quindi avere che da un lato e dall'altro l'immagine dell'MC sia in dissolvenza.
    Immagini allegate Immagini allegate
    Ciao By Peter_Pan...

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    E' il numero di elementi nei tre array "colors", "alphas" e "ratios" che da la possibilità di creare sfumature a più colori.
    Nel caso della tua immagine l'array dei colori contiene un bianco, un nero e un altro bianco.
    L'array delle alpha contiene l'alpha da usare per ogni colore, nel nostro caso sono tutt'e tre al 100%.
    L'array dei ratios deve contenere valori compresi tra 0 e 255 e rappresentano l'area di massima intensità del colore corrispondente nell'array, quindi nel nostro caso il primo bianco sarà massimo nella posizione 0, il nero sarà massimo nella posizione centrale e l'altro bianco lo sarà alla fine della sfumatura.

    Codice PHP:
    var fillType:String GradientType.LINEAR;
    var 
    colors:Array = [0xFFFFFF00xFFFFFF];
    var 
    alphas:Array = [111];
    var 
    ratios:Array = [0128255];
    var 
    matr:Matrix = new Matrix();
    matr.createGradientBox(200100000);
    var 
    spreadMethod:String SpreadMethod.PAD;
    this.graphics.beginGradientFill(fillTypecolorsalphasratiosmatrspreadMethod);  
    this.graphics.drawRect(0,0,200,100);
    this.graphics.endFill(); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    grazie per la tempestiva risposta, mi spiegheresti anche perchè se metto il codice che mi hai dato direttamente in un file fla funziona, mentre se lo metto in una funzione che si trova in una classe (.as) mi da errore
    1120: Accesso alla proprietà non definita GradientType.
    1120: Accesso alla proprietà non definita SpreadMethod.
    Ciao By Peter_Pan...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    forse perchè se porto il codice in una classe separata devo importare le librerie
    import flash.display.GradientType;
    import flash.display.SpreadMethod;

    ????
    Ciao By Peter_Pan...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Esatto, quando crei una classe devi importare tuttee le classi necessarie che userai nel tuo codice (apparte le top classes come Array, String ecc)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    perfetto, dato che ci siamo ti posso chiedere anche questa cosa?
    Dopo che ho fatto questo gradientBox, l'ho inserito in un nuovo MC e poi l'ho fatto diventare maschera di un MC contenente delle immagini, lo scopo è quello di creare uno slider di immagini con l'inizio e la fine sfumate, però la maschera mi viene tagliata di netto e non sfumata, come mai??
    Ciao By Peter_Pan...

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    perchè per avere una maschera sfumata non devi avere due colori diversi, ma delle "alpha" diverse
    a occhio e senza provare, nel tuo codice dovresti modificare l'array alpha in questo modo: [0, 1, 0]

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    è quello che avevo pensato anche io, ma mi sorge un dubbio, ho provato a fare un nuovo file fla e a creare un rettangolo sfumato a tre colori con le 2 estremità ad alfa a 0, poi ho caricato una foto e ho gli ho dato come maschera il riquadro sfumato, mi aspettavo di vedere la foto sfumare ai lati, invece no, il taglio è netto, allora mi chiedo, una maschera può essere sfumata??? Io ricordavo di si...
    Ciao By Peter_Pan...

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    da flash 8 le maschere accettano anche la sfumatura, però mi pare che sia necessario dichiarare true il cacheAsBitmap per entrambi i clip (maschera e mascherato)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    ehmmm no, non funziona , va be prova a fare un giro in internet per capire come risolvere, anche se mi sembra strano che non funzioni..
    Grazie
    Ciao By Peter_Pan...

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.