代码之家  ›  专栏  ›  技术社区  ›  Birk

旋转AS3动态创建的对象

  •  1
  • Birk  · 技术社区  · 16 年前

    我正在建立一个网站,需要一个音频文件与均衡器播放。我还不太了解AS3,所以这可能是一个简单的问题。

    我找到了一个我想用的例子 Demonstrated here source files here

    将均衡器对象添加到舞台的代码(来自教程)

    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);
            }
        }
    }
    

    这创建了一个垂直方向的均衡器,具有一些非常好的效果。

    然而,我希望它是水平的,所以我认为我需要旋转“e”90度。你们知道怎么做吗?或者方向完全由创建它的动作脚本决定?

    谢谢你的帮助。

    2 回复  |  直到 16 年前
        1
  •  4
  •   Chad Birch    16 年前

    线的正下方:

    e.x = 100;
    e.y = 100;
    

    尝试添加:

    e.rotation = 90;
    

    我认为这应该是可行的,但您可能会遇到轴心点位置的一些问题(您是希望轴心点围绕中心旋转90度,还是围绕左上角旋转90度)。

        2
  •  1
  •   Richard Szalay    16 年前

    另一件要记住的事情是 DisplayObject.transform matrix transformations 如果需要,可以进行更复杂的平移/旋转/缩放。