flash,as3,如何在类文件中访问被嵌套元件的坐标位置,谢谢

程序如下:publicfunctionMain(){moo=newArray();for(varj:uint=0;j<3;j++){varmoon:Moon=newMoo... 程序如下:
public function Main() {
moo=new Array();

for (var j:uint =0; j<3; j++) {
var moon:Moon=new Moon();
moon.x=100*j+50;
moon.y=200;
moon.gotoAndStop(j+1);
moo.push(moon);
addChild(moon);
}
}
我这样写:if(moo[0].dd0.localToGlobal(pp).y==200) { }
程序报错:ReferenceError: Error #1069: 在 Moon 上找不到属性 dd0,且没有默认值。
dd0是moo[0]内部嵌套的一个影片剪辑,名称为dd0。moo[0]其实是由moo0与dd0两个mc组成。
如果直接在舞台上添加,用if(moo0.dd0.localToGlobal(pp).y==200) { }完全正确。
我的类文件该如何修改?
例如:1 库中有圆形影片剪辑moon,导出为类Moon,还有个小方块影片剪辑dd。在moon里面包含了元件dd;
2 把元件moo加载到舞台: var moo:Moon=new Moon(); addChild(moo);
3 如何才能访问moo内的dd,已经说得够明白了,
4 我想证明dd的全局坐标y是在200上:var pp:Point = new Point(); if(moo.dd.localToGlobal(pp).y==200) { }
程序报错,我编程思路有误
在研究中,有做过的教下
展开
 我来答
marywisher
2011-05-04 · TA获得超过176个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:156万
展开全部
我似乎看懂你说的意思了,其实dd0,对于moo这个数组而言,是一个成员,而不是属性,对吧,所以,moo[0][0]或moo[0][1]其实才是你认为的dd0,再试试
用trace(moo[0][1].target);看看它运行时输出出来的内容对不对
追问
ReferenceError: Error #1069: 在 Moon 上找不到属性 0,且没有默认值。
不行
追答
我按照你问题补充里说的,写了fla,也trace了一些东西,没有报错啊,你看看这个是我写在舞台上的代码,你那边有没有问题

var moo:Moon=new Moon();
this.addChild(moo);
moo.y=200;

trace(moo.dd);//输出内容:[object MovieClip]

var pp:Point = new Point();

trace(moo.dd.y);//输出内容:0
trace(moo.dd.localToGlobal(pp).y);//输出内容:200
if(moo.dd.localToGlobal(pp).y==200) { trace("hello"); } //正常输出“hello”
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩v天
2011-05-06 · TA获得超过881个赞
知道小有建树答主
回答量:312
采纳率:20%
帮助的人:130万
展开全部
不知道你的思路是不是认为dd加到数组里面也成dd0了是吧,这是不对的,虽然new 了三次moon,
但是它的名称还是没有变的,而且就算是三次moon,改了名字,里面的dd还是一样,
你前面说的是dd0,后面补充又是dd,不知道到底是什么,
按你后面补充说的,里面是dd而不是dd0 ,下面代码测试一切正常

var moo:Array=new Array();

for (var j:uint =0; j<3; j++) {
var moon:Moon=new Moon();
moon.x=100*j+50;
moon.y=200;
moon.gotoAndStop(j+1);
moo.push(moon);
addChild(moon);
}
var pp:Point = new Point();

if(moo[0].dd.localToGlobal(pp).y==200) {trace("dddd") }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jeff5668
2011-05-05 · TA获得超过167个赞
知道小有建树答主
回答量:148
采纳率:100%
帮助的人:138万
展开全部
你再另外建立一个元件,导出为Moon 然后创建Moon类, 给他加个public var dd0:MovieClip就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
局势君
2011-05-05 · 知道合伙人教育行家
局势君
知道合伙人教育行家
采纳数:409 获赞数:466

向TA提问 私信TA
展开全部
我这样写:if(moo[0].dd0.localToGlobal(pp).y==200) { }
--------------------------------------------------------------------------
我这样写:if(moo[0]["dd0"].localToGlobal(pp).y==200) { }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式