Faire pivoter un objet créé dynamiquement AS3
-
20-08-2019 - |
Question
Je construis un site qui requiert la lecture d’un fichier audio avec un égaliseur. Je ne connais pas encore beaucoup d’AS3, alors c’est peut-être une question simple.
J'ai trouvé un exemple que j'aimerais utiliser présenté ici et fichiers source ici
Code permettant d'ajouter l'objet égaliseur à la scène (à partir du tutoriel)
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);
}
}
}
Ceci crée un égaliseur orienté verticalement avec de jolis effets.
Cependant, j'aimerais qu'il soit horizontal et je pense donc avoir besoin de faire pivoter " e " 90 degrés. Est-ce que l'un de vous sait comment faire cela? Ou bien l’orientation est-elle dictée exclusivement par le script d’action qui la crée?
Merci pour votre aide.
La solution
Juste en dessous des lignes:
e.x = 100;
e.y = 100;
Essayez d'ajouter:
e.rotation = 90;
Je pense que cela devrait fonctionner, mais vous pouvez rencontrer des problèmes avec l'emplacement du point pivot (que vous souhaitiez une rotation de 90 degrés autour du centre ou en haut à gauche).
Autres conseils
Il convient également de garder à l'esprit DisplayObject. transformer .matrix (Sprite étend DisplayObject indirectement). Vous pouvez utiliser la transformations de matrice pour faire beaucoup traduction / rotation / mise à l'échelle plus complexe si vous en avez besoin.