【问题标题】:Rotate an AS3 Dynamically created object旋转 AS3 动态创建的对象
【发布时间】:2010-10-04 03:20:29
【问题描述】:

我正在构建一个需要使用均衡器播放音频文件的网站。我对 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 度。你们中有人知道怎么做吗?还是方向完全由创建它的动作脚本决定?

感谢您的帮助。

【问题讨论】:

    标签: flash actionscript-3 rotation


    【解决方案1】:

    就在下面几行:

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

    尝试添加:

    e.rotation = 90;
    

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

    【讨论】:

    • 完美,谢谢...我试过 e.rotate 并出现错误,但旋转成功了。
    • 您对枢轴点的看法也是正确的,所以我一直在玩数字直到它成功...再次感谢。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-11-20
      • 2010-12-04
      • 1970-01-01
      • 2018-04-10
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多