Ruota un oggetto AS3 creato dinamicamente
-
20-08-2019 - |
Domanda
Sto costruendo un sito che richiede la riproduzione di un file audio con un equalizzatore. Non so ancora molto su AS3, quindi questa potrebbe essere una domanda semplice.
Ho trovato un esempio che vorrei utilizzare Dimostrati qui e i file sorgente qui
Il codice per aggiungere l'oggetto equalizzatore allo stage (dal tutorial)
package {
import flash.media.*;
import flash.net.*;
import flash.display.*;
import flash.events.*;
import com.everydayflash.equalizer.*;
import com.everydayflash.equalizer.color.*;
public class Main extends Sprite{
public function Main() {
var s:Sound = new Sound(new URLRequest("track.mp3"));
s.play(0, 100, new SoundTransform(1, 0));
var es:EqualizerSettings = new EqualizerSettings();
es.numOfBars = 32;
es.height = 64;
es.barSize = 2;
es.vgrid = true;
es.hgrid = 2;
es.colorManager = new SolidBarColor(0xffff4444);
es.effect = EqualizerSettings.FX_REFLECTION;
var e:Equalizer = new Equalizer();
e.update(es);
e.x = 100;
e.y = 100;
addChild(e);
addEventListener(Event.ENTER_FRAME, e.render);
}
}
}
Questo crea un equalizzatore orientato verticalmente con alcuni effetti piuttosto carini.
Tuttavia, vorrei che fosse orizzontale, quindi credo di dover ruotare " e " 90 gradi Qualcuno di voi sa come farlo? Oppure l'orientamento è dettato esclusivamente dallo script d'azione che lo crea?
Grazie per l'aiuto che hai.
Soluzione
Proprio sotto le righe:
e.x = 100;
e.y = 100;
Prova ad aggiungere:
e.rotation = 90;
Credo che dovrebbe funzionare, ma potresti riscontrare alcuni problemi con la posizione del punto di articolazione (sia che tu voglia ruotarlo di 90 gradi attorno al centro, o attorno all'angolo in alto a sinistra).
Altri suggerimenti
Un'altra cosa da tenere a mente è DisplayObject. transform .matrix (Sprite estende DisplayObject indirettamente). Puoi usare trasformazioni di matrici per fare molto traduzione / rotazione / ridimensionamento più complessi se necessario.