flash中AS3.0的一些问题

1、我生成了一个类的实例(比如var football:Ball=new Ball(),这段代码是些在as文件里的),然后我在对应的fla文件的舞台上画了一个圆,转化为影片剪辑文件。现在我想告诉flash,我在舞台上画的那个圆,其实就是我在as文件中声明的那个实例,我该如何把他们俩联系在一起?(不要用“自动声明”的功能)
2、我要获得舞台上任意一个实例的引用,代码是什么?(不用for循环检索行不?)
3、我要获得某个实例的类名(结果是字符串),代码是什么?
1、这个我觉得我说的很明白了。FLASH CS5注重美工和代码分离。比如现在我美工做好了,代码也写好了,那我得把它们联系在一起啊!我的代码里面有一个Ball类,而舞台上有一个小球,我怎么样计算机知道这个小球是属于Ball类的?
2、我既然说了“任意实例的引用”,那就代表我不知道该实例的名字。比如舞台上有1000个实例,我想在鼠标碰到任意一个实例的时候都trace(1),我总不能给每个都命名然后写1000行代码吧?
3、举个例子,就好像某个类有一个name属性,比如var name:String=”a“。而这个类有一个实例b,那么我在打出代码b.name的时候,就相当于打出了”a”。我现在要的效果是,打出了某行代码,就相当于打出了这个类的类名。不知道有没有表达清楚?

1、凡是出现在舞台的所有实例,都势必要绑定一个类,如果你没指定绑定哪个类,那么FLASH会自动帮你绑定MOVIECLIP类,所以一般的影片剪辑都具有所有MovieClip类的所有特性。利用这个原理,你可以设置把某个元件和某个类绑定,就能达到你说的效果。当你的实例出现在舞台上,是因为你将它从库中拖出来了,把它从库中拖到舞台上,就相当于声明了一个实例的过程。库中的每个影片剪辑都和MovieClip类绑定,你现在只要把绑定的MovieClip类改成Ball类就行了。方法是右键点击库中小球所属的元件,选择属性,在弹出的框的中间选择“为AS3.0导出”,在类那一框填入Ball,就可以了。

2、首先要import mx.utils.DisplayUtil
然后使用walkDisplayObjects函数
语法是DisplayUtil.walkDisplayObjects(displayObject:DisplayObject,callbackFunction:Function)
可以遍历displayObject这个容器中的所有子对象,把它设置为stage就相当于对所有实例的引用了

3、很简单,typeof就可以办到,后面直接跟对象不用加括号。比如trace(typeof 9)//输出Number
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-16
你在库中把你的影片剪辑(你画的圆)绑定类Ball,不就行了嘛
“我总不能给每个都命名然后写1000行代码吧”那你的这100个实例那来的呢?如果你是舞台上直接从库里面拖进去的那你就给每一个命名呀,要是用代码动态创建的那就创建的时候命名嘛,比如:
var myArr:Array=Array(100);
for(var i:uint;i<myArr.lenght;i++){
var myArr[i]:mc=new mc();
myArr[i]:.name="mc"+i;
addChild(myArr[i]:);
}
代码与美工分类,但是你编写程序的时候肯定是有目的的去编写呀,那个类是文档类,那个类是那个影片剪辑绑定的类,改绑定的绑定,还不明白???
第2个回答  2012-11-14
1.使用as中的实例,需要先倒入包 其他的都正常直接声明就可以了,import+包路径 var football:Ball=new Ball();
2.直接应用实例名称就可以了,在属性面板-实例名称-然后你自己添个名字 直接就可以了
如 实例名字为mc mc.x=100;直接就可以用了
3.你可以获取他在显示列表的位置来获取他的名字、
不知道你说的类名什么意思 类名和实例名是不一样的追问

算了。。我想问的三个问题你都误解了。。

追答

是我误解了还是没表达明白呢?

相似回答