Flash AS3无法引用空对象的属性方法: 在文档类里 在不同类型事件里,一个实例化,另个怎么访问它的方法?
Main主类varbullet:Bullet;varbullets:Array;publicfunctionMain(){stage.addEvnet.............
Main主类
var bullet:Bullet;
var bullets:Array;
public function Main(){ stage.addEvnet..................}
public function init(event:TimerEvent){
bullet=new Bullet()
addChild(bullet);
bullets.push(bullet)
}
public function delet(event:Event){
bullets[1].deletbullet();
//怎么访问它的方法?
}
出现无法访问属性和方法:deleteBullet()
这是Bullet(元件的扩展类)类中的方法:
public function deleteBullet() {
parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,moveup);
MovieClip(parent).removeBullet(this)}
这是在我Main主类中:
public function checkhit(event:Event) {
for (var bb:int=0; bb<Bullets.length; bb++) {
for (var pp:int=0; pp<Planes.length; pp++) {
if (Bullets[bb].hitTestObject(Planes[pp])) {
Bullets[bb].deleteBullet();//其中Planes是对象Plane的数组
Bullets是对象Bullet的数组; }}}}
public function removeBullet(bullet:Bullet) {
for (var i in Bullets) {
Bullet[i]=bullet;
Bullets.slice(i,1);}}
public function keydown(event:KeyboardEvent) {
if (event.keyCode==37) {
moveleft=true;
} else if (event.keyCode==32) {
firebullet(); }}
public function firebullet() {
var dd:Number=0.5;
var yspeed:Number=10-dd;
var b:Bullet=new Bullet(gun.x,gun.y,yspeed);
addChild(b);
Bullets.push(b); 展开
var bullet:Bullet;
var bullets:Array;
public function Main(){ stage.addEvnet..................}
public function init(event:TimerEvent){
bullet=new Bullet()
addChild(bullet);
bullets.push(bullet)
}
public function delet(event:Event){
bullets[1].deletbullet();
//怎么访问它的方法?
}
出现无法访问属性和方法:deleteBullet()
这是Bullet(元件的扩展类)类中的方法:
public function deleteBullet() {
parent.removeChild(this);
removeEventListener(Event.ENTER_FRAME,moveup);
MovieClip(parent).removeBullet(this)}
这是在我Main主类中:
public function checkhit(event:Event) {
for (var bb:int=0; bb<Bullets.length; bb++) {
for (var pp:int=0; pp<Planes.length; pp++) {
if (Bullets[bb].hitTestObject(Planes[pp])) {
Bullets[bb].deleteBullet();//其中Planes是对象Plane的数组
Bullets是对象Bullet的数组; }}}}
public function removeBullet(bullet:Bullet) {
for (var i in Bullets) {
Bullet[i]=bullet;
Bullets.slice(i,1);}}
public function keydown(event:KeyboardEvent) {
if (event.keyCode==37) {
moveleft=true;
} else if (event.keyCode==32) {
firebullet(); }}
public function firebullet() {
var dd:Number=0.5;
var yspeed:Number=10-dd;
var b:Bullet=new Bullet(gun.x,gun.y,yspeed);
addChild(b);
Bullets.push(b); 展开
2个回答
展开全部
1.Shape类是图形类,不能进行交互,你的第1个类,在c_sprite()这个方法中必须有(在return()之前):
addChild(myshape);
你的第1个fla文件中,var b1:nav_item=new nav_item();后面加上
b1.c_sprite(10);
addChild(b1);
搞定
2.问题补充那里,第1个addChild()是把myshape加到类nav_item的显示列表中,第2个addChild()是把b1添加到舞台上主类的显示列表中,把显示对象添加到显示列表中,才能让它显示出来,不然的话虽然它是存在的,但是它不显示
addChild(myshape);
你的第1个fla文件中,var b1:nav_item=new nav_item();后面加上
b1.c_sprite(10);
addChild(b1);
搞定
2.问题补充那里,第1个addChild()是把myshape加到类nav_item的显示列表中,第2个addChild()是把b1添加到舞台上主类的显示列表中,把显示对象添加到显示列表中,才能让它显示出来,不然的话虽然它是存在的,但是它不显示
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询