+ -
当前位置:首页 → 问答吧 → 我创建一个Sprinte对象后,其他地方调用发现它的X坐标值是0

我创建一个Sprinte对象后,其他地方调用发现它的X坐标值是0

时间:2011-02-22

来源:互联网

我创建一个Sprinte对象后,其函数里调用,发现它的X坐标值是0,可以我在创建它的时候定义了具体的值了啊!
for(i=0;i<6;i++){
west.graphics.beginFill(0xff0000);
west.graphics.drawRect(280,30-i*40, 13, 13);
west.name="nort"+i;  //nort
exam.addChild(west);
}

var sprite_tmp2:Sprite;
for( i =0;i<6;i++ )
{
sprite_tmp2 = exam.getChildByName("nort"+0)  as  Sprite;
trace(sprite_tmp2.x);                   // 问题在这里,后来我发现这里是0,我把代码简洁了下,但愿没简洁掉重要的部分
}

问题就像我说的,能解释下吗?

作者: ywl917   发布时间: 2011-02-22

你定义的是绘制的图形的位置,又不是定义的坐标

作者: flash023   发布时间: 2011-02-22

那我是不是要用一个对象数组把对象都装起来啊? 我上面贴的代码是一个对象变量画了几个图

作者: ywl917   发布时间: 2011-02-22

不知道你要干什么,回答不出来

作者: flash023   发布时间: 2011-02-22

对不起,呵呵,我要创建48个相同的元件,其中每6个成一组,我刚试了下,发现可以建个数组,但现在还不知道怎么下手创建对象名称,
var name:Sprite= new Sprite();
如果我要每个对象都创建,48个name该怎么去命名啊!我之前用for循环,发现没成功, 我说的很零散,抱歉啊,

和我上面的问题加起来就是这个:
我要创建48个对象,然后在计时器函数里实时对这48个对象经行操作,就这样

作者: ywl917   发布时间: 2011-02-22

复制内容到剪贴板
代码:
var shapeArray:Array =[]
var w:uint=8;
while (w--) {
    //一组放在一个Sprite中
    var sprite:Sprite=addChild(new Sprite  ) as Sprite;
    var h:uint=6;
    while (h--) {
        var _s:Shape=sprite.addChild(new Shape  ) as Shape;
        _s.graphics.beginFill(0xff0000);
        _s.graphics.drawRect(0,0,15,15);
        _s.x=w*30;
        _s.y=h*30;
        _s.alpha=.2;
        shapeArray.unshift (_s);
    }
}
function changeShape(e:TimerEvent ):void {
    if(nowShape)nowShape.alpha=.2;
    (nowShape=shapeArray[index++]).alpha=1;
    index%=shapeArray.length;
}
var index:uint=0;
var nowShape:Shape;
var T:Timer =new Timer(300);
T.addEventListener (TimerEvent.TIMER,changeShape);
T.start ();

作者: flash023   发布时间: 2011-02-22