请教一个as3.0的问题,代码如下: 还有请教下localX和mouseX有什么区别,书都是跳着看的,看到后面就忘了

//setupbuttonsbutton1.addEventListener(MouseEvent.CLICK,playLibrarySound);button2.add... // set up buttons
button1.addEventListener(MouseEvent.CLICK, playLibrarySound);
button2.addEventListener(MouseEvent.CLICK, playExternalSound);

// load external sound so it is ready
var sound2:Sound = new Sound();
var req:URLRequest = new URLRequest("PlayingSounds.mp3");
sound2.load(req);

function playLibrarySound(event:Event) {
var sound1:Sound1 = new Sound1();
var channel:SoundChannel = sound1.play();
}

function playExternalSound(event:Event) {
sound2.play();
}
就是这个var sound2:Sound = new Sound()和var sound1:Sound1 = new Sound1(),我想说的是为啥sound1后面声明的类型既可以写成Sound1 也可以写成Sound呢,而sound2声明的时候不行呢,新手。。请详细说明,谢谢
展开
 我来答
zb6306
2012-05-08 · TA获得超过777个赞
知道大有可为答主
回答量:2585
采纳率:66%
帮助的人:1148万
展开全部
首先你要明确,你这个Sound1是自定义类,否则是会报错的。在这里看不出你的Sound1类在哪。要是你的Sound1继承自Sound,当然可以用Sound类型也可以用Sound1类型,而Sound1是Sound的子类,所以sound2只能是Sound类型,不能是Sound1类型,就如同你是你父亲的儿子,你姓你父亲的姓,但不能说你父亲姓你的姓的道理是一样的。 同理在我们内置类中,我们可以这样声明一个变量:
var mc:MovieClip=new MovieClip();也可以这样声明
var mc:Sprite=new MovieClip(),因为MovieClip继承自Sprite,当然也可以这样声明
var mc:DisplayObject=new MovieClip();因为所有的显示对象都是DisplayObject的子类。
但是你这样声明就不行;
var mc:MovieClip=new Sprite();
因为MovieClip不是Sprite的父类。这样会报错的。
更多追问追答
追问
我刚才想说的是sound2声明的时候为啥不能写成var Sound2:Sound2,现在懂了,我这是书上的代码,那个库元件中肯定有sound1继承自sound这个是吧。谢谢,最后麻烦解释下localX和mouseX好吗?非常感谢
追答
5分太少了,不值得。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式