为了账号安全,请及时绑定邮箱和手机立即绑定

比如我声明了一个Object类型的对象obj,然后用{}方法给obj声明了2个属性:

比如我声明了一个Object类型的对象obj,然后用{}方法给obj声明了2个属性:

慕哥6287543 2022-08-03 18:14:54
var obj:Object={obj1:new MovieClip(),obj2:1};然后对obj.obj1添加侦听函数:obj.obj1.addEventListener(Event.ENTER_FRAME,onShow);function onShow(e:Event):void{var mc:MovieClip=e.target as MovieClip;//请问在这里怎么通过mc找到obj并输出obj的第二个属性的值"1"?我知道可以直接打obj,但是如果批量的时候,不能直接得到mc是属于哪一个复杂数据类型的属性,怎么办?}
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

var obj:Object={obj1:new MovieClip(),obj2:1};
上面这样声明,obj1、obj2就是obj的属性,就像影片剪辑的x、y属性一样,可以通过影片剪辑的x、y属性访问到影片剪辑对象吗?答案是,不能。
所以你的要求也是不能实现的。

有两个修改意见提供给你参考:
1.不要对属性添加侦听,直接对obj添加侦听,这样一切都会变得很方便;
2.任然需要保留对属性侦听的情况:当有很多obj的时候,将他们放入一个数组objArr,然后在这个数组中查找符合条件的
function onShow(e:Event):void{
var mc:MovieClip=e.currentTarget as MovieClip;
for(var i:int = 0; i<objArr.length; i++){
if(objArr[i].obj1 == mc){
//objArr[i]就是你需要的
return;
}
}
}

查看完整回答
反对 回复 2022-08-08
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

给mc动态添加了一个数组属性mc.arr,然后在这个数组之中添加mc的各个因素,然后通过访问e.target.arr.a,e.target.arr.b等来得到当前捕获mc的各属性。 

查看完整回答
反对 回复 2022-08-08
  • 2 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号