“FlashPlatform Initialization”的版本间的差异
来自Blueidea
第73行: | 第73行: | ||
如果您操作無誤完成如上設定後會看見以下畫面。 | 如果您操作無誤完成如上設定後會看見以下畫面。 | ||
<center>[[Image:FlashPlatform_InitStage.png]]</center> | <center>[[Image:FlashPlatform_InitStage.png]]</center> | ||
+ | |||
+ | |||
+ | ==stage軟獲取== | ||
+ | 假設這個類的swf被另外一個swf所加載。那麼一定會悲劇。 | ||
+ | <syntaxhighlight lang="actionscript"> | ||
+ | package { | ||
+ | import flash.display.Sprite; | ||
+ | import flash.display.StageAlign; | ||
+ | import flash.display.StageScaleMode; | ||
+ | /** | ||
+ | * The <code>Test</code> class.<br/> | ||
+ | */ | ||
+ | public class Test extends Sprite { | ||
+ | //========================================================================== | ||
+ | // Constructor | ||
+ | //========================================================================== | ||
+ | /** Constructor */ | ||
+ | public function Test() { | ||
+ | stage.align = StageAlign.TOP_LEFT; | ||
+ | stage.scaleMode = StageScaleMode.NO_SCALE; | ||
+ | } | ||
+ | } // <- end class -> | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | 使用stage引用的軟獲取。可以有效避免悲劇和蛀牙的發生。 | ||
+ | <syntaxhighlight lang="actionscript"> | ||
+ | package { | ||
+ | import flash.display.Sprite; | ||
+ | import flash.display.StageAlign; | ||
+ | import flash.display.StageScaleMode; | ||
+ | import flash.events.Event; | ||
+ | |||
+ | /** | ||
+ | * The <code>Test</code> class.<br/> | ||
+ | */ | ||
+ | public class Test extends Sprite { | ||
+ | //========================================================================== | ||
+ | // Constructor | ||
+ | //========================================================================== | ||
+ | /** Constructor */ | ||
+ | public function Test() { | ||
+ | addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); | ||
+ | } | ||
+ | //========================================================================== | ||
+ | // Event listeners | ||
+ | //========================================================================== | ||
+ | private function addedToStageHandler(event:Event):void { | ||
+ | removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); | ||
+ | stage.align = StageAlign.TOP_LEFT; | ||
+ | stage.scaleMode = StageScaleMode.NO_SCALE; | ||
+ | } | ||
+ | } // <- end class -> | ||
+ | } | ||
+ | </syntaxhighlight> |
2011-04-14T00:44:15的版本
Flash platform 應用初始化常用設置。
舞台尺寸的軟匹配:
此示例識別舞台大小的修改並始終以一個藍色背景填充。
package { import flash.display.Shape; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; // ${1} /** * The <code>Test</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();
如果您操作無誤完成如上設定後會看見以下畫面。
stage軟獲取
假設這個類的swf被另外一個swf所加載。那麼一定會悲劇。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; /** * The <code>Test</code> class.<br/> */ public class Test extends Sprite { //========================================================================== // Constructor //========================================================================== /** Constructor */ public function Test() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; } } // <- end class -> }
使用stage引用的軟獲取。可以有效避免悲劇和蛀牙的發生。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; /** * The <code>Test</code> class.<br/> */ public class Test extends Sprite { //========================================================================== // Constructor //========================================================================== /** Constructor */ public function Test() { addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); } //========================================================================== // Event listeners //========================================================================== private function addedToStageHandler(event:Event):void { removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; } } // <- end class -> }