2014-01-12 52 views
0

目前我遇到AS3問題。AS3 - 圖紙超出舞臺範圍

我試圖繪製一個超過舞臺範圍的非常長的圖像。問題是超出舞臺範圍的部分仍然會被繪製,所以當我使用flash或網頁測試我的程序時,結果看起來不太好。

我將舞臺大小設置爲960 640,但超過960和640(甚至是0 < 0)的部分仍然繪製。

有沒有辦法隱藏超出範圍的部分,只在預定義的階段範圍內繪製東西?

從我的理解,舞臺的寬度和高度應該是唯一的可視範圍,但我不知道爲什麼超出此範圍的東西仍然可以看到。

btw我正在使用FlashDevelop。

非常感謝。

+0

嗯。回到Actionscript 1的時代,人們確實在舞臺的可見部分之外繪製(放置)了對象,而瀏覽器的Flash窗口並未將網頁搞砸。我說不用擔心,但是在網頁上正確分配舞臺尺寸以便發佈。 – Vesper

+0

你是否正在查看這嵌入在一個HTML文件?這不應該是一個問題,如果你是。 – bandaro

回答

1

這很大程度上取決於您是採取僅使用代碼方式還是使用IDE。

IDE方法:在Flash Professional中,在舞臺的時間軸上創建一個新圖層。放置一個與該圖層中的舞臺大小完全相同的矩形。現在,右鍵單擊圖層並選擇「蒙版」。鎖定圖層。

現在,請確保舞臺時間線上的所有其他圖層都位於該蒙版下方。將圖層拖動到蒙版下方,以便它在蒙版下方的列表中顯示爲略微縮進。

代碼處理方法:(代碼從How to create masks in AS3?乾杯多汁液和NEBU的代碼。)

var maskShape:Shape = new Shape(); 
maskShape.graphics.beginFill(0x0); 
maskShape.graphics.drawRect(0, 0, 960, 640); 
maskShape.graphics.endFill(); 
addChild(maskShape); 
maskShape.x = 0; 
maskShape.y = 0; 

thingToMask.mask = maskShape; 
maskShape.visible = false; 
+0

非常感謝!該解決方案(代碼方法)剛剛解決了我的問題。 – Melwell