2012-04-28 98 views
1

爲什麼這不工作?!動態創建並添加一個動畫片段到舞臺

stop(); 
var board:MovieClip = new MovieClip(); 
board.width = 60 * 5; 
board.height = 60 * 5; 
board.graphics.clear(); 
board.graphics.beginFill(0xFF0000); 
board.graphics.lineStyle(1, 0x000000); 
board.graphics.drawRect(0, 0, board.width, board.height); 
board.graphics.endFill(); 
this.addChild(board); 
board.x = 40; 
board.y = 40; 

這很簡單,已經做了無數次,但它不會爲我工作! 我已經將它粘貼到一個動作框架和一個文檔腳本中,它們都不起作用! 這令我很沮喪,因爲我知道這是對的! 我正在使用Flash CS5.5!

回答

1

如果我沒有記錯 - 已經有一段時間了 - 那裏是否widthheight,直到MovieClip中有某些東西。即使您手動設置尺寸,也沒有任何尺寸,所以它們最終保持爲0。您必須先添加一個對象或者先畫一些東西給graphics,然後才能調整它的大小。

+0

謝謝!我錯過了它,我覺得很愚蠢! – BlakcRece 2012-04-28 16:19:06

0

改變這一行:

board.graphics.drawRect(0, 0, board.width, board.height); 

要:

board.graphics.drawRect(0, 0, 60 * 5, 60 * 5); 

爲什麼:

我可能是錯的,我還沒有測試,但board.widthboard.height很可能返回0。

+0

哦,我的上帝! o.O 我將代碼片段更新爲此; 'var board:MovieClip = new MovieClip(); var bW:Number = 60 * 5; var bH:Number = 60 * 5; board.graphics.clear(); board.graphics.beginFill(0xFF0000); board.graphics.lineStyle(1,0x000000); board.graphics.drawRect(0,0,bW,bH); board.graphics.endFill(); this.addChild(board); board.x = 40; board.y = 40;' 它工作!爲什麼?!這是否是在添加到舞臺之前沒有尺寸的動畫片段? – BlakcRece 2012-04-28 16:12:45

+0

@BlakcRece我甚至不知道爲什麼我不再回答問題(無視這個,只是發泄)。 – Taurayi 2012-04-28 16:49:11

相關問題