我創建一個拖放使用AS3掉落遊戲,我想檢查時,除了一個影片剪輯的在畫面外身後移動視圖,讓用戶選擇在哪裏放棄它。檢查當影片剪輯的一部分離開舞臺
我不能'測試MovieClip憑據是否大於舞臺(scaleMode = NO_SCALE)寬度/高度,因爲有一部分舞臺隱藏在瀏覽器窗口後面。
這是相同的方面,因爲只是MOUSE_LEAVE這個時候它必須是對影片剪輯,我想看看後面MOUSE_LEAVE的代碼,但我不能達到它。
謝謝。
主類
[SWF(width='800', height='800',backgroundColor='#CC99FF', frameRate='60')]
public class DragTest extends Sprite
{
public function DragTest()
{
addChild(new World(this));
this.stage.scaleMode = "noScale";
this.stage.align = "TL";
this.graphics.lineStyle(5,0x555555,0.5);
this.graphics.drawRect(0,0,800,800);
}
}
WORLD CLASS
public class World extends Container // Container from my SWC
{
private var _display:Sprite;
private var _dragPt:Point;
private var _dragedObject:MovieClip;
public function World(display:Sprite)
{
super();
_display = display;
myMC.addEventListener(MouseEvent.MOUSE_DOWN, onPickUp, false, 0, true);
display.stage.addEventListener(MouseEvent.MOUSE_UP, onDrop, false, 0, true);
display.stage.addEventListener(Event.MOUSE_LEAVE, onMouseLeave, false, 0, true);
}
protected function onMouseLeave(event:Event):void
{
trace("Mouse Is Leaving The Stage");
}
protected function onDrop(e:MouseEvent):void
{
_display.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMoveObject);
}
private function onPickUp(e:MouseEvent)
{
_dragedObject = e.currentTarget as MovieClip;
_display.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMoveObject, false, 0, true);
}
protected function onMoveObject(e:MouseEvent):void
{
var point:Point = new Point(_display.stage.mouseX, _display.stage.mouseY);
(_dragedObject as MovieClip).x = point.x;
(_dragedObject as MovieClip).y = point.y;
}
}
下面是一個例子: Simple Code
就這樣,這不是另一個** [X/Y問題](http://meta.stackexchange.com/a/66378)**。您的問題是關於如何將Flash內容從一個瀏覽器窗口拖到另一個瀏覽器窗口?我對「舞臺隱藏在瀏覽器窗口後面」感到困惑,並且還說:「...在屏幕之外將視圖移動到後面並讓用戶選擇將其放置在哪裏。」 –
實際上它不是從一個窗口拖到另一個窗口,舞臺有時隱藏在瀏覽器後面,因爲我使用noScale,所以當你縮小窗口的大小時,一部分舞臺沒有顯示,我正在嘗試做什麼當一個動畫片段正在觸摸舞臺的顯示區域,檢測它即將離開的時候,它對MOUSE_LEAVE很有效,我只是想用MC來做。 –
** [這個答案](http://stackoverflow.com/a/6050299/2057709)**沒有幫助?提供一個可以「固定」的小型可測試示例代碼。通常,我只需要使用一個'enterframe'函數來說明何時按下鼠標按鈕,然後是'myMC.x = stage.mouseX;'這樣MC遵循鼠標,也許你也可以使用'Mouse_Leave'方法... –