打印

[AS3] 能否用FOR循环申明连续命名的实例?

比如有一个student 类构造函数为:
public function student(number:String) {
....
}

在使用中要生成20个实例,赋值为name1~name20有没有可能写一个for循环来实现?

for(counter=1;counter<=image_num;counter++)
       {
       this["imageClip"+counter].attachMovie("image"+counter,"image",1);
       }
在AS2.0中,像类似这样的应用很多 也很方便。到了3.0碰到这种情况就没头绪了。。。~麻烦大家指点一下 先谢谢啦
如果方便的话请大致写一下语法格式

[ 本帖最后由 eva0882 于 2008-5-28 23:35 编辑 ]
方括号的写法没问题呀,只是 Sprite 不是动态类罢了
要么弄一个继承 Sprite 的动态类,要么弄个 Object 来代替 this 好了

[ 本帖最后由 painyeph 于 2008-5-29 01:47 编辑 ]
for (var i:uint=0; i<20; i++) {
       var _tt:Sprite=new tt();
addChild(_tt);
_tt.name="_tt"+i;
_tt.x=20*i;

}
---------------------------------------------------------------------------
http://www.haishabei.com/::专注于ActionScript Flex RIA学习
先谢谢楼上两位的回答

我好像不是很理解这种方法,正常情况下我比如这样建一个类
var _tt:Square=new Square();
然后只要
_tt.funcion(); 就能调用它了

现在这种方法新生成的20个对象的名字是什么呢? 我以为是_tt0 ~ _tt19。。。但试过好像不对

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
死脑筋
一定要通过对象名访问么?
裸奔也是一种美

TOP

厄。。。 请楼上的这位解释得详细一点。。。

我真的不太懂

TOP

打个比喻.你创建一个MC.并给他帮定为tt类
之后
var _tt_array:Array=new Array();
for (var i:uint=0; i<20; i++) {
       var _tt:Sprite=new tt();
       addChild(_tt);
       _tt.name="_tt"+i;
       _tt_array.push(_tt);
       _tt.x=50*i;
       _tt.y=100;
}
for (var j:uint=0; j<_tt_array.length; j++) {
       _tt_array[j].addEventListener(MouseEvent.CLICK,$haishabei);
}
function $haishabei(event:Event):void {
       trace(event.target.name);
}
/*三种访问方式*/
通过深度访问.getChildAt ()
通过名字访问.getChildByName () 方法
通过全局坐标访问.getObjectsUnderPoint () 方法
var some:Sprite=getChildByName(event.target.name) as Sprite;
*********************************************************************************************
http://www.haishabei.com/::专注于ActionScript Flex RIA学习

TOP

谢谢 楼上的解答 我理解了

TOP