1
我通過向Flex中的Canvas添加MovieClip做了測試。手動設置時影片剪輯大小錯誤
private function onInit():void {
var mc:MovieClip = new MovieClip();
mc.graphics.clear();
mc.graphics.lineStyle(2, 0, 1);
mc.graphics.beginFill(0xFF0000, 0.5);
mc.graphics.drawRect(0, 0, 400, 300);
mc.graphics.endFill();
mainCanvas.rawChildren.addChild(mc);
}
private function onMouseMove():void {
var child:DisplayObject = mainCanvas.rawChildren.getChildAt(i);
trace("MovieClip size:", (child as MovieClip).width, (child as MovieClip).height);
}
mainCanvas聲明和實例化在MXML:
<Canvas id="mainCanvas" width="400" height="300" />
這第一次嘗試工作正常,並在控制檯顯示以下輸出,當我將鼠標移動到舞臺:
MovieClip size: 402 302
但是,當我想明確設置影片剪輯的大小時,我再也看不到了,而且ouptut顯示的大小錯誤。
這裏是更新init方法:
private function onInit():void {
var mc:MovieClip = new MovieClip();
mc.width = 400;
mc.height = 300;
mc.graphics.clear();
mc.graphics.lineStyle(2, 0, 1);
mc.graphics.beginFill(0xFF0000, 0.5);
mc.graphics.drawRect(0, 0, 400, 300);
mc.graphics.endFill();
mainCanvas.rawChildren.addChild(mc);
}
以及相應的輸出:
MovieClip size: 0 0
是否有人有這種奇怪的行爲作出任何解釋?
謝謝你,能解決我的問題,但我還是不明白,爲什麼設置的大小時,影片剪輯是空的影響最終結果。 – duTr
'寬度'和'高度'翻譯'scaleX'和'scaleY',沒有任何可測量的變換矩陣變爲無效,您的'DisplayObject'永遠不會呈現內容。 –