플래시로 AS3에서 포인트 앤 클릭 게임을 만들고 있습니다.롤오버 이벤트에서 커서를 변경하는 방법
새로운 클래스 "Souris"를 작성하여 커서의 스킨을 변경했습니다. 괜찮아. 이제 커서가 장면의 객체 위에있을 때 커서의 스킨을 변경하려고합니다.
나는 MouseEvent.ROLL_OVER이 좋은 방법입니다 읽었습니다하지만 난 그것을 수행하는 방법을 알아낼 수 없습니다가 ...
나는 그런 내 Souris의 클래스를 가지고 :
public class Souris extends MovieClip
{
private var engine:Engine;
private var stageRef:Stage;
private var p:Point = new Point();
public function Souris(stageRef:Stage)
{
Mouse.hide(); //make the mouse disappear
mouseEnabled = false; //don't let our cursor block anything
mouseChildren = false;
this.stageRef = stageRef;
x = stageRef.mouseX;
y = stageRef.mouseY;
stageRef.addEventListener(MouseEvent.MOUSE_MOVE, updateMouse, false, 0, true);
stageRef.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler, false, 0, true);
stageRef.addEventListener(Event.ADDED, updateStack, false, 0, true);
stageRef.addEventListener(MouseEvent.ROLL_OVER,hover);
}
private function updateStack(e:Event) : void
{
stageRef.addChild(this);
}
private function hover(e:MouseEvent):void {
souris.visible = false;
}
private function mouseLeaveHandler(e:Event) : void
{
visible = false;
Mouse.show(); //in case of right click
stageRef.addEventListener(MouseEvent.MOUSE_MOVE, mouseReturnHandler, false, 0, true);
}
private function mouseReturnHandler(e:Event) : void
{
visible = true;
Mouse.hide(); //in case of right click
removeEventListener(MouseEvent.MOUSE_MOVE, mouseReturnHandler);
}
private function updateMouse(e:MouseEvent) : void
{
x = stageRef.mouseX;
y = stageRef.mouseY;
e.updateAfterEvent();
}
}
}
}
내 메인 클래스 (엔진 클래스)에서
내가있어 : 나는 "Souris의"클래스에 넣어 시도했습니다
private var souris:Souris;
public function Engine(){
souris = new Souris(stage);
stage.addChild(souris);
}
private function startGame(e:Event):void{
....
..
stageRef.addEventListener(MouseEvent.ROLL_OVER,hover);
private function hover(e:MouseEvent):void {
Engine.souris.visible = false;
handCursor.visible = true ;
}
그러나 그것은 틀린 것처럼 보입니다 ... 나는 내 호버 기능에 무엇을 넣어야할지 모르겠다. (내 라이브러리에 "handCursor"가 있습니다.)
도움 주셔서 감사합니다.
오류는 없지만 항목에 커서를 올리면 내 handCursor가 나타나지 않습니다 ... 이유를 알고 있습니까? 내 엔진 클래스에서 내가 souris.visible = true (나는 "Souris"클래스에 코드를 넣었습니다.)라고 생각합니다. – user2421975
아니요, MouseEvent.ROLL_OVER가 작동하지 않는다고 생각합니다. 아마 ... 나는 두지 말아야한다. – user2421975
확인 방법을 찾았습니다. MouseEvent.MOUSE_OVER였습니다. 너의 도움을위한 Thx !!!! – user2421975