![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2005
Сообщений: 113
|
В классе Arrow передаю dispatchEvent вот код класса который его должен принять:
package main {
import main.Arrow;
import flash.text.*;
import flash.events.EventDispatcher;
import flash.display.Sprite;
import flash.events.Event;
dynamic public class Text extends Sprite {
var arr:Arrow = new Arrow();
public var score:Number;
public var score1:String;
public function Text() {
score=0;
var.addEventListener("ArrowHit",handleEvent);
}
private function handleEvent(evt:Event):void {
score+=1;
score1=score.toString();
this.quantity.text=score1;
}
}
}
TypeError: Error #1009: Cannot access a property or method of a null object reference. at main::Arrow/Random() at main::Arrow$iinit() at main::Text$iinit() at flash.display::Sprite/flash.display:Sprite::constructChildren() at flash.display::Sprite$iinit() at flash.display::MovieClip$iinit() at test_fla::MainTimeline$iinit() Мне кажется виновата строчка var arr:Arrow = new Arrow(); Но что не так? Подскажите пожалуйста! |
|
|||||
|
Она не виновата
![]() Но судя по сообщению еррора, в функцие Random класс Arrow ты пытаешься обратится к свойству или методу, который не существует. Почитай предыдущий топик и ты поймешь о чем речь. А если в двух словах, то надо видеть класс Arrow. |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 113
|
1когда ее убираю ошибок нет (просто не получаю ивент)
2 ляп там arr.addEventListener("ArrowHit",handleEvent); |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 113
|
вот весь код Arrow .Прост мне кажеться что ошибка в наследовании.
package main {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.EventDispatcher;
dynamic public class Arrow extends Sprite {
public var flag:Number;
public var xs:Number;
public var ys:Number;
public var lemx:Number;
public var lemy:Number;
public function Arrow() {
Random();
addEventListener(Event.ENTER_FRAME, Update);
}
public function Random() {
flag=0;
x=0;
y=0;
lemx=parent.width;
lemy=parent.height;
xs=Math.random()*5;
ys=Math.random()*5;
}
private function Update(evt:Event):void {
x+=xs;
y+=ys;
if(x>=lemx-width||x<=-1) {
xs=-xs;
if(flag==1){
parent.width=lemx;
parent.height=lemy;
this.dispatchEvent(new Event("ArrowHit"));
flag=0;
}else {
parent.width-=(parent.width/100)*5;
parent.height-=(parent.height/100)*5;
this.dispatchEvent(new Event("ArrowHit"));
flag=1;
}
} ;
if(y>=lemy-height||y<=-1) {
ys=-ys;
if(flag==1){
parent.width=lemx;
parent.height=lemy;
this.dispatchEvent(new Event("ArrowHit"));
flag=0;
}else {
parent.width-=(parent.width/100)*5;
parent.height-=(parent.height/100)*5;
this.dispatchEvent(new Event("ArrowHit"));
flag=1;
}
}
}
}
}
|
|
|||||
|
Регистрация: Dec 2005
Сообщений: 113
|
И что делать?
|
|
|||||
|
Регистрация: Dec 2005
Сообщений: 113
|
так?
package main {
import main.Arrow;
import flash.text.*;
import flash.events.EventDispatcher;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.*;
dynamic public class Text extends Sprite {
public var score:Number;
public var score1:String;
public function Text() {
var arr:Arrow = new Arrow();
addChild(arr);
score=0;
arr.addEventListener("ArrowHit",handleEvent);
}
private function handleEvent(evt:Event):void {
score+=1;
score1=score.toString();
this.quantity.text=score1;
}
}
}
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|