旋转AS3动态创建的对象

时间:2009-01-28 22:57:10

标签: flash actionscript-3 rotation

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

我找到了一个例子,我想使用Demonstrated heresource 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 个答案:

答案 0 :(得分:4)

正下方:

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

尝试添加:

e.rotation = 90;

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

答案 1 :(得分:1)

要记住的另一件事是DisplayObject.transform。matrix(Sprite间接扩展DisplayObject)。如果需要,您可以使用matrix transformations进行更复杂的翻译/旋转/缩放。