选择actionscript 3类的元素

时间:2012-11-11 14:13:43

标签: actionscript-3 flash class

我正在as3中构建音频音序器。我有一个Track类,其中包含播放声音的播放按钮,音量滑块和16个复选框,用于打开/关闭16个步骤中的每一个。舞台上有8个Track实例。我想知道的是如何唯一地识别点击什么按钮/滑块/复选框?我在哪里加载每个声音? boleow是我的Track类

package 
    {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
public class Track extends MovieClip
{
    private var soundName:Sound;
    private var theChannel:SoundChannel;
    private var songName:String;
    public function Track()
    {
        // constructor code
        trace("track created");
        singlePlay.addEventListener(flash.events.MouseEvent.CLICK, handlePlayClick);
    }
    private function handlePlayClick(e:Event):void
    {
        trace("Play clicked");
        this.play();
    }       
    public function setSoundName(theName:String):void
    {
        this.songName = theName;
        soundName = new Sound();
        var req:URLRequest = new URLRequest(this.songName);
        soundName.addEventListener(Event.COMPLETE, playSound);
        soundName.load(req);
    }
    public function playSound()
    {
        theChannel = soundName.play();
    }
    public function stopSound():void
    {
        theChannel.stop();
    }
}
}

1 个答案:

答案 0 :(得分:0)

如果你有一个能够加载不同音频文件(曲目)和UI的中央音频播放器会更好,它会触发该类的动作,而不是构建可以处理音频播放的视觉元素。你必须首先学习OOP原则才能做到正确(正确的意思是:灵活,可重用,易于维护/扩展):

书籍:

  • Essential ActionScript 3.0 - Moock
  • 面向对象的ActionScript 3.0 - Elst,Jacobs,Yard

直接回答你的问题,每个DispalyObject都有一个名称属性,你可以用它来识别被点击的东西 - 不理想。

最好的问候