В развитие темы...
Для MOUSE_MOVE у меня заработало...теперь захотел функции события мыши описать в отдельном файле и подгружать в основной для использования.
Основной файл теперь выглядит так:
Код AS3:
package
{
import flash.display.*;
import flash.events.*;
public class zovnish_funkc extends MovieClip
{
private var krug:Sprite;
private var Sobytia_Mouse:Vnesh_Mysh;
public function zovnish_funkc()
{
krug = new Sprite();
krug.graphics.lineStyle(1, 0xFF0000);
krug.graphics.beginFill( 0xFF00FF );
krug.graphics.drawCircle( 0, 0, 30);
addChild(krug);
Sobytia_Mouse = new Vnesh_Mysh(this);
addEventListener(Event.ENTER_FRAME, play_game);
}
private function play_game(event:Event):void
{
krug.x = Sobytia_Mouse.koor_x;
krug.y = Sobytia_Mouse.koor_y;
}
}
}
Файл Vnesh_Mysh с функцией отслеживания курсора мыши такой:
Код AS3:
package
{
import flash.events.MouseEvent;
import flash.display.Sprite;
public class Vnesh_Mysh extends Sprite
{
var koor_x = 100;
var koor_y = 100;
public function Vnesh_Mysh(navigacia)
{
navigacia.stage.addEventListener(MouseEvent.MOUSE_MOVE, on_MouseMove);
}
private function on_MouseMove (event:MouseEvent):void
{
koor_x = mouseX;
koor_y = mouseY;
}
}
}
Всё работает.
Пытаюсь увеличить функциональность событий мыши добавив обработку событий MOUSE_DOWN и MOUSE_UP ...
Код AS3:
package
{
import flash.events.MouseEvent;
import flash.display.Sprite;
public class Vnesh_Mysh extends Sprite
{
var koor_x = 100;
var koor_y = 100;
public function Vnesh_Mysh(navigacia)
{
navigacia.stage.addEventListener(MouseEvent.MOUSE_DOWN, on_MouseDown);
navigacia.stage.addEventListener(MouseEvent.MOUSE_UP, on_MouseUp);
}
private function on_MouseDown(event:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, on_MouseMove);
}
private function on_MouseMove (event:MouseEvent):void
{
koor_x = mouseX;
koor_y = mouseY;
}
private function on_MouseUp(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, on_MouseMove);
}
}
}
а в ответ неподвижный круг, а при нажатии и отпускании ЛКМ сообщение:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at proba::Vnesh_Mysh/on_MouseDown()
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at proba::Vnesh_Mysh/on_MouseUp()
Никак не пойму в чём дело, помогите разобраться.