有沒有辦法阻止DisplayObject的height屬性的自動更改?它會自動調整大小以匹配內容,儘管我的swf文件高度爲32像素。下面的代碼可以證明這一點,第一幀enemy.height是32但後來是27.5,這就弄亂了我的腳本。防止DisplayObject的高度變化
getRect()和getBounds()返回完全相同。另外,我想知道爲什麼在第一幀中它顯示正確的高度,在第二幀中它改變了,它應該從一開始就顯示27.5。
package {
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite {
private var enemy:Sprite;
[Embed(source = '../lib/enemy.swf')] private var swf:Class;
public function Main():void {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function update(e:Event):void {
trace(enemy.height);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
enemy = new swf();
addChild(enemy);
addEventListener(Event.ENTER_FRAME, update);
}
}
}
是的,這些解決方案是可行的,但我們仍然很奇怪ActionScript開發人員無法阻止這種默認行爲。現在我正在收聽ADDED_TO_STAGE,存儲高度,並根據存儲的高度進行進一步的計算,而不是實際的高度。 – Veehmot
您使用AS越多,您注意到像MovieClip這樣的一體化課程就越不以創建程序員爲目標,而更多地是Flash純動畫時代的遺留問題。 –
我甚至不會稱之爲「哈克」,這是通常的做法,以保持大小。 – alxx