Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Ashry
    Registrato dal
    Jul 2002
    Messaggi
    586

    scaleX e scaleY centrati

    Salve a tutti, è possibile fare in modo che la circonferenza si ingrandisca restando centrata? vorrei creare una sorta d'effetto diaframma ma non riesco a centrare il puntio di registrazione.

    Codice PHP:

    import flash
    .display.Sprite;
    import flash.events.MouseEvent;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    /*creo l amaschera*/
    var circle:Sprite = new Sprite();
    circle.graphics.beginFill(0xFF0000);
    circle.graphics.drawCircle(288288288);
    //circle.graphics.drawRect(0, 0, 448, 291);
    circle.cacheAsBitmap true;
    /*chreo il mc da "mascherare"*/
    var myContainer:Sprite = new Sprite();
    myContainer.graphics.beginFill(0x000000);
    myContainer.graphics.drawRect(00448291);
    this.addChild(myContainer);
    /*assegno la maschera al mc*/
    myContainer.mask circle;

    /*carico l'immagine nel container*/
    var clip_1_mc:img00=new img00();
    myContainer.addChild(clip_1_mc);
    this.addChild(circle);
    /*creo il timer per il resize della maschera*/
    var maskTimer:Timer = new Timer(2000);
    maskTimer.addEventListener(TimerEvent.TIMERtimerEvent);
    maskTimer.start();


    function 
    timerEvent(e:Event):void {
        
    circle.addEventListener(Event.ENTER_FRAMEscaleDown);
    }

    function 
    scaleDown(e:Event):void {
        
    circle.scaleX -= 0.05;
        
    circle.scaleY -= 0.05;
        if (
    circle.scaleX 0) {
            
    circle.removeEventListener(Event.ENTER_FRAMEscaleDown);
            
    circle.addEventListener(Event.ENTER_FRAMEscaleUp);
        }

    }
    function 
    scaleUp(e:Event):void {
        
    circle.scaleX += 0.1;
        
    circle.scaleY += 0.1;
        if (
    circle.scaleX >1) {
            
    circle.removeEventListener(Event.ENTER_FRAMEscaleUp);
            
    circle.addEventListener(Event.ENTER_FRAMEscaleDown);
        }

    un'altra cosa è possibile caricare in sequenza i miei mc?
    vorrei caricare prima il primo img00 poi img01 e così via, pensavo di fare una cosa
    Codice PHP:

    var activeClip:int 0;
    var 
    totalClip:int 3;
    var 
    myClip:MovieClip;
    var 
    primoClip:int Math.random()*totalClip;
    loadClip(primoClip);
    activeClip primoClip;

    var 
    timer:Timer = new Timer(40000);
    timer.start();

    timer.addEventListener(TimerEvent.TIMER,timerListener);

    function 
    timerListener(e:TimerEvent) {
        if (
    activeClip == totalClip) {
            
    loadClip("img00");
        } else {
            
    loadClip("img0"+(activeClip+1));
        }

    che ovviamente è sbagliato ^-^
    potrestedarmi una mano?

    grazie

  2. #2
    Mentre ingrandisci e rimpiccolisci devi calcolare la larghezza del clip ed agire su _x e_y
    incrementanto o dimunendo a secondo dell'azione che si sta svolgendo

  3. #3
    Aggiungo che io memorizzerei la x/y iniziale e le dimensioni (w/h) iniziali
    Poi misuri le nuove dimensioni, le sottrai alle originali, le dividi per due, e il risultato lo sommi alla posizione originale.

  4. #4
    Stavo pensando ... ma non ho flash sotto mano

    e se creassi la maschera ed il clip all'interno del container

    e già in fase di creazione posizionassi il centro di "graphics" e "cerchio" in 0,0 di container

    come si comporta il tutto ??

    Ciao

  5. #5
    Immagino che se creo un container, con dentro un clip cerchio che sposto in modo che il centro sia sullo 0,0 del container, e quindi opero sullo scale del container sono a posto.

  6. #6
    Appunto è quello che dicevo. Aspettiamo la prova dell'autore del post.

    Ciao

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.