
AS3 复杂数据类型声明属性及调用问题
比如我声明了一个Object类型的对象obj,然后用{}方法给obj声明了2个属性:varobj:Object={obj1:newMovieClip(),obj2:1};...
比如我声明了一个Object类型的对象obj,然后用{}方法给obj声明了2个属性:
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是属于哪一个复杂数据类型的属性,怎么办?
} 展开
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是属于哪一个复杂数据类型的属性,怎么办?
} 展开
1个回答
展开全部
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;
}
}
}
上面这样声明,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;
}
}
}
追问
这个问题我解决了,我给mc动态添加了一个数组属性mc.arr,然后在这个数组之中添加mc的各个因素,然后通过访问e.target.arr.a,e.target.arr.b等来得到当前捕获mc的各属性。
不过还是谢谢你,你的方法相当好,我新手O(∩_∩)O
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询