• User Attivo •

    Ho tentato con le maschere, ma non riesco a far venire questo effeto. potresti indicarmi qualche risorsa dove poter colmare le mie lacune (per quanto riguarda la programmazione non ci sono grandi problemi ho molta esperienza...non moltissima con actionscript però 😞 )


  • Super User •

    Copia e incolla questo script nel primo frame della timeline di Flash.
    Tieni un'immagine nella stessa directory e chiamala pic_1.jpg .

    
    // importo le classi
    import flash.display.BitmapData;
    import flash.geom.Point;
    import flash.geom.Matrix;
    
    // Gestione listener e broadcasting con la root
    
    var temp:MovieClip=_root.createEmptyMovieClip('temp_mc',_root.getNextHighestDepth());
    var empty:MovieClipLoader=new MovieClipLoader();
    var shuf:MovieClip=_root.shuffle_mc;
    empty.addListener(this);
    empty.loadClip('pic_1.jpg',temp);
    
    // Creo gli Arrays per le clip che comporranno il puzzle e dei punti
    var clips_array:Array=new Array();
    var points_array:Array=new Array();
    
    // metodo onLoadInit della classe MovieClipLoader
    
    this.onLoadInit=function():Void
    {
        var w:Number=5;
        var h:Number=5;
        var x:Number=0;
        var y:Number=0;
        var width:Number=Math.floor(temp._width/w);
        var height:Number=Math.floor(temp._height/h);
        var m:Matrix;
        var bitmap:BitmapData;
        var point:Point;
        var clip:MovieClip;
        var copy:MovieClip;
        // applico 2 cicli for per creazione di bitmapdata e matrici
        for(var i:Number=0;i<h;i++)
        {
            for(var j:Number=0;j<w;j++)
            {
                bitmap=new BitmapData(width,height,true,0xFFFFFFFF);
                m=temp.transform.matrix;
                m.translate(-width*j,-height*i);
                bitmap.draw(temp,m);
                //creo le clips e le inserisco in un array così come creo dei punti e li inserisco in un array.
                clip=_root.createEmptyMovieClip('clip_'+i+'_'+j+'_mc',_root.getNextHighestDepth());
                clips_array.push(clip);
                point=new Point(width*j,height*i);
                points_array.push(point);
                clip.attachBitmap(bitmap,1);
                clip._x=point.x;
                clip._y=point.y;
                clip.onPress=function():Void
                {
                    this.startDrag();
                }
                clip.onRelease=function():Void
                {
                    this.stopDrag();
                }
            }
        }
        temp.removeMovieClip();
    }
    
    

    Ho aggiunto startDrag() solo per farti vedere che puoi trascinare ogni singolo pezzo e l'immagine è tagliata.
    Studia lo script per tagliare l'immagine in strisce e poi, siccome ogni pezzo è dentro una movieclip li puoi muovere a tuo piacimento.


  • User Attivo •

    ehm...suppongo che mi serva flash 8...vero?


  • Super User •

    Si, per forza.
    🙂


  • User Attivo •

    ok...mi organizzerò in proposito...


  • Super User •

    :eheh:


  • User Attivo •

    Ho provato lo script che mi hai postato sul PC di un mio collega il quale ha Flash 8, ma mi dice che non conosce la classe Matrix.

    Che posso fare?


  • Super User •

    Scusami, non ho ben capito 🙂
    Chi non conosce la classe Matrix, il tuo collega?
    Oppure Flash non la trova ?


  • User Attivo •

    Scusa sono stato poco chiaro...

    Ti trascrivo il messaggio di errore che mi da:

    Errore Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 28: Impossibile caricare la classe o l'interfaccia 'flash.geom.Matrix'.
    var m:Matrix;

    Errore Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 29: Impossibile caricare la classe o l'interfaccia 'flash.display.BitmapData'.
    var bitmap:BitmapData;

    Errore Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 30: Impossibile caricare la classe o l'interfaccia 'flash.geom.Point'.
    var point:Point;

    Errore Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 38: Impossibile caricare la classe o l'interfaccia 'flash.display.BitmapData'.
    bitmap=new BitmapData(width,height,true,0xFFFFFFFF);

    Errore Scena=Scena 1, livello=Livello 1, fotogramma=1:Linea 45: Impossibile caricare la classe o l'interfaccia 'flash.geom.Point'.
    point=new Point(widthj,heighti);

    Totale errori ActionScript: 5 Errori segnalati: 5


  • Super User •

    Ok, non trova le classi.
    Guarda in questa path se c'è la classe BitamapData:
    C:\Program Files\Macromedia\Flash 8\en\First Run\Classes\FP8\flash\display