Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [as3] Evitare spostamento degli assi di rotazione e del punto di fuga

    Ho un MovieClip che chiamo contenitore e risiede al centro dello Stage.
    Dentro a contenitore ho un altro Movie Clip che chiamo ruotato ed è posto a coordinate x=0 y=0 del contenitore.
    Dentro ruotato ho l'istanza di un'ulteriore MovieClip rettangolo che raffigura un rettangolo, l'istanza è posta a coordinate x=0 y=0 di ruotato.
    Il rettangolo è disegnato al cetro di rettangolo
    Il contenitore viene messo sempre al centro dello stage dall'actionscript, senza essere scalato.
    Il problema è che se imprimo una rotazione sull'asse X a ruotato e poi modifico le dimensioni della finestra che contiene il filmato, il rettangolo viene portato al centro ma l'asse di rotazione resta fisso e di conseguenza mi trovo un punto di fuga che non è più centrale.
    Ho messo apposta ruotato dentro a contenitore perchè pensavo che spostando al centro contenitore non andavo così ad alterare la posizione di ruotato, tuttavia la traslazione agisce non solo sul contenitore ma anche sugli oggetti contenuti.
    Io voglio che il rettangolo sia collocato al centro, ruotato ma con punto di fuga sempre centrale.

  2. #2
    Da una ricerca e da un mio ragionamento sono arrivato a dedurre questo: quando si sposta un oggetto con actionscript tramite le proprietà x ed y in realtà si sposta solo l'oggetto e non il punto di registrazione dello stesso. Se l'oggetto contiene altri oggetti anche questi vengono spostati ma i punti di registrazione di tali oggetti restano sempre fissi e non seguono lo spostamento dell'oggetto contenitore. Essendo i punti di registrazione le origini delle coordinate di tali oggetti, le rotazioni avvengono sempre attorno ad assi che passano per questi punti. I punti di registrazione non sono più nella posizione originale rispetto all'oggetto cui si riferiscono, cioè al centro, così se l'oggetto viene ruotato esso è visto da un'angolazione diversa.
    In sostanza se si ha necessità di spostare un oggetto e di ruotarlo non c'è via di scampo, il punto di osservazione dell'oggetto cambia sia che lo spostamento lo subisca direttamente o indirettamente attraverso un suo contenitore. Da quanto ho letto non vi è modo di cambiare con actionscript la posizione dei punti di registrazione (salvo forse utilizzare un'estensione che ho trovato della classe MovieClip che ancora devo vedere come funziona... se funziona).

  3. #3
    Sapevo che doveva esserci una soluzione...
    http://help.adobe.com/it_IT/ActionSc...78525AD54.html
    la riga incriminata è questa:
    codice:
    root.transform.perspectiveProjection.projectionCenter = new Point(this.stage.stageWidth/2,this.stage.stageHeight/2);
    che va richiamata ad un evento RESIZE dello stage.
    In pratica mette il fuoco prospettico sempre al centro dello stage.

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.