PDA

Просмотр полной версии : определения пользовательских событий в классе


Lex1
12.06.2005, 17:00
Hi, all! У меня такая проблема - например есть класс ball, в этом классе есть метод который attach`ит на сцену картинку мячика. Как зделать метод который удалял бы картинку со сцены при нажатии клавиши мыши в любой точке сцены?? Помогите плз...
ps - ответ на этот вопрос даже к книжке Колина Мука ненашол :(

Nirth
12.06.2005, 17:05
removeMovieClip();

Lex1
12.06.2005, 17:09
Nirth, ты непонял мне нужно отследить счелчок мыши! Про удаление ресунка это я так к примеру...

Nirth
12.06.2005, 17:22
onMouseDown

Lex1
12.06.2005, 17:47
Ну и как ты себе представляеш эту функцию в классе??
function ball(){ //новый класс
this.****; //Какие нибудь методы и свойства
this.onMouseDown = function(){****} //Мне кажется это рабоать не будет!!
}
Мне нужно определить пользовательское событие для класса!!

Nirth
12.06.2005, 17:55
class com.onorange.helping.Ball extends MovieClip
{
//Properties
private var ball_mc : MovieClip
//Methods
public function Ball ()
{
this.draw ();
this.initMouse ();
}
public function draw () : Void
{
this.createEmptyMovieClip ("ball_mc", this.getNextHighestDepth ());
this.ball_mc.lineStyle (40, 0xFF0000);
this.ball_mc.lineTo (.5, 0);
this.ball_mc._y = 35;
}
private function initMouse () : Void
{
this.onMouseDown = function ()
{
this.ball_mc.removeMovieClip ();
}
}
}

Если хочешь создать свое событие почитай в хелпе про EventDispatcher

Lex1
12.06.2005, 17:59
Nirth, большое спасибо, это вроде то что надо! Только вот нюанс я програмлю на AS1, как это будет смотрется на нем??

Nirth
12.06.2005, 18:02
вопрос такой, а нафиг тебе классы на AS1 ???
А вообще не имею понятия, на AS1 не кодил полтора года.
вариант с созданием своих собственных событий

import mx.events.EventDispatcher;
class com.onorange.helping.Ball extends MovieClip
{
//Properties
public var addEventListener, removeEventListener : Function;
private var dispatchEvent : Function
private var ball_mc : MovieClip
//Methods
public function Ball ()
{
EventDispatcher.initialize (this);
this.addEventListener ("ballGone", this);
this.draw ();
this.initMouse ();
}
public function draw () : Void
{
this.createEmptyMovieClip ("ball_mc", this.getNextHighestDepth ());
this.ball_mc.lineStyle (40, 0xFF0000);
this.ball_mc.lineTo (.5, 0);
this.ball_mc._y = 35;
}
private function initMouse () : Void
{
this.onMouseDown = function ()
{
this.dispatchEvent (
{
type : 'ballGone'
});
this.ball_mc.removeMovieClip ();
}
}
}

Lex1
12.06.2005, 18:06
ok! Спасибо...понял...