2016-11-22 75 views
0

首先,我是一個總的noob as3和一般編碼,我幾乎沒有運行代碼片段之外。自定義鼠標光標刪除重複的符號後,其中刪除

我正在開發一個項目,其中的一部分是在進入場景後您會得到自定義鼠標光標的場景,當您離開場景時,自定義鼠標光標將被刪除。我用來啓動自定義光標的代碼是:

stage.addChild(crsTemple); 
crsTemple.mouseEnabled = false; 
crsTemple.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor); 

function fl_CustomMouseCursor(event:Event) 
{ 
crsTemple.x = stage.mouseX; 
crsTemple.y = stage.mouseY; 
} 
Mouse.hide(); 

其中crsTemple是自定義光標的實例名稱。然後,當進入一個新的場景(通過滾動在一個對象),我在新的場景下面的代碼:

stage.addChild(crsTemple); 
crsTemple.mouseEnabled = false; 
crsTemple.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor_4); 

function fl_CustomMouseCursor_4(event:Event) 
{ 
    crsTemple.x = stage.mouseX; 
    crsTemple.y = stage.mouseY; 
} 
Mouse.hide(); 

crsTemple.removeEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor_4); 
stage.removeChild(crsTemple); 
Mouse.show(); 

不幸的是,每當我進入了第二個場景,我再次拿到常規鼠標,但是當場景發生變化時,無論鼠標位於何處,它都會丟棄crsTemple,並且在文件運行的其餘時間保持在那裏。

任何幫助非常感謝,非常感謝幫助像我這樣的noob!

回答

0

無需在新場景中編寫相同的代碼。您實際上可以使用第一個場景中的所有聲明。在場景2中,以下代碼片段MOUSE_MOVE處理函數(fl_CustomMouseCursor)也將在場景2中調用。自定義光標也可以通過其名稱crsTemple訪問。

import flash.display.MovieClip; 
import flash.events.MouseEvent; 

var crsTemple:Sprite = new CrsTemple(); 
crsTemple.mouseEnabled = false; 
addChild(crsTemple); 

// for smooth cursor movement MOUSE_MOVE instead of ENTER_FRAME 
stage.addEventListener(MouseEvent.MOUSE_MOVE, fl_CustomMouseCursor); 
stage.addEventListener(MouseEvent.CLICK, nextStage); // for test purpose, just to switch the stage 

function fl_CustomMouseCursor(event:Event):void 
{ 
crsTemple.x = stage.mouseX; 
crsTemple.y = stage.mouseY; 
trace(crsTemple.x); 
} 

function nextStage(e:Event):void { 
    gotoAndStop(1,"Scene 2"); 
} 

Mouse.hide(); 
stop(); 

這裏是一個link to fla樣品

+0

這個回答我的問題,並使其完美地工作!非常感謝@DigitalD的幫助,我真的很感激!你救了我的項目遲到了! –