“FlashPlatform Initialization”的版本间的差异
来自Blueidea
(→舞台尺寸的軟匹配:) |
|||
第74行: | 第74行: | ||
$border.graphics.endFill(); | $border.graphics.endFill(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | 如果您操作無誤完成如上設定後會看見以下畫面。 | ||
+ | <center>[[Image:FlashPlatform_InitStage.png]]</center> |
2011-04-13T22:54:03的版本
Flash platform 應用初始化常用設置。
舞台尺寸的軟匹配:
此示例識別舞台大小的修改並始終以一個藍色背景填充。
/* ~~ Blueidea wiki [Category:Flash platform]~~ www.blueidea.com */ package { import flash.display.Shape; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; // ${1} /** * The <code>Molehill</code> class.<br/> */ public class Test extends Sprite { //========================================================================== // Constructor //========================================================================== /** Constructor */ public function Test() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; // 待會用來填充舞台。 $border = new Shape(); addChild($border); // 初始時先繪製一次。 repaintBorder(stage.stageWidth, stage.stageHeight); // 監聽舞台大小的改變。 stage.addEventListener(Event.RESIZE, stage_resizeHandler); } private var $border:Shape; private function repaintBorder(width:uint, height:uint):void { // ${2} } //========================================================================== // Event listeners //========================================================================== private function stage_resizeHandler(event:Event):void { repaintBorder(stage.stageWidth, stage.height); } } // <- end class -> }
通常我們會對stage做如上設定讓舞台在左上角對齊,並且當FlashPlayer尺寸設置時令縮放保持不變。
stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE;
接下來對FlashPlayer設定一個初始大小。如果您使用的Flash IDE那麼直接在設置面板設置即可。
如果您使用的時Flash Builder那麼可以在${1}處加入使長寬為900 x 600並指定60fps刷新率。
// ${1} [SWF(width="900", height="500", frameRate="60")]
最後在舞台尺寸改變時重新繪製邊框。
// ${2} $border.graphics.clear(); $border.graphics.beginFill(0x00CCFF); $border.graphics.drawRect(0, 0, width, height); $border.graphics.endFill();
如果您操作無誤完成如上設定後會看見以下畫面。