ページへ戻る
印刷
Starling+Feathersで画面遷移
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:Starling+Feathersで画面遷移 をテンプレートにして作成
開始行:
Feathersには画面遷移を行うための、ScreenとScreenNavigator...
Screenが画面そのもので、ScreenNavigatorがそれを管理するク...
*Screen
Screenはそのまま使うより、継承して使うことが多い。そして...
override protected function initialize():void
{
super.initialize();
//ここで初期化する
}
ScreenはSpriteを継承しているので、addChildで描画オブジェ...
Screen自体は単に画面の大もとになるというだけで、特筆する...
*ScreenNavigator
ScreenをScreenNavigatorに登録すると画面遷移が簡単にできる...
ScreenNavigatorへの登録はScreenNavigatorItemを使う。
var screenNavigator:ScreenNavigator = new ScreenNavigato...
baseSp.addChild(screenNavigator);
var screenNavigatorItem:ScreenNavigatorItem = new Screen...
screenNavigator.addScreen( "screen1", screenNavigatorIte...
あとは、
screenNavigator.showScreen("screen1");
とすればそのスクリーンが表示される。この表示される時にScr...
ここで注意しないといけないのは、ScreenNavigatorItemはScre...
new ScreenNavigatorItem( TestScreen1 );
としても、
new ScreenNavigatorItem( new TestScreen1() );
としてもScreenNavigatorItemのインスタンスは作れる。これら...
クラスを与えたときは、''画面遷移のときにdisposeが呼ばれて...
インスタンスを与えたときは、''そのインスタンスが保持され...
よってメモリを節約したいときはクラスを与えて初期化した方...
ちなみに私は自動でdisposeが行われないように全てインスタン...
ScreenNavigatorItemで便利なのは画面遷移のイベントを設定で...
screenNavigator.setScreenIDForEvent( "screen1Show", "scr...
としておくと、ScreenNavigatorに登録したスクリーンで
dispatchEventWith("screen1Show");
とすると、screen1のIDの画面へと遷移する。
画面遷移のアニメーションも好みの物に変更できる。たとえば...
screenNavigator.transition = Fade.createFadeInTransition...
となる。
**複数のScreenNavigator
ScreenNavigatorは複数同時に使うことができる。よって、たと...
*Screenの初期化の負荷分散
Adobe Airでのアプリ制作の弱点の一つとして、インスタンスの...
これを防ぐには遷移先の画面の初期化が終わるまでロード画面...
ロード画面の表示させかたとしては、一つはWorkerを使って別...
もう一つはタイマーで初期化を分散する方法である。つまり、...
protected var firstInitFunctions:Vector.<Function> = new...
それに初期化処理をpushしていく。
firstInitFunctions.push(function():void {
//初期化処理1
});
firstInitFunctions.push(function():void {
//初期化処理2
});
firstInitFunctions.push(function():void {
//初期化処理3
});
これをタイマーで一つずつ実行していく。
protected var firstInitTimerCnt:int = 0;
private function onInitTimerChick(e:TimerEvent):void
{
firstInitFunctions[firstInitTimerCnt]();
firstInitTimerCnt++;
if (firstInitFunctions.length <= firstInitTimerCnt) {
firstInitFunctions.length = 0;
//初期化終わり
}
}
すると処理が分散されるのでローダーのアニメーションはとま...
*「戻る」処理が必要ならStackScreenNavigator
StackScreenNavigatorなら画面遷移をスタックしてくれるので...
詳細は[[Starling+FeathersでStackScreenNavigator]]を参照の...
終了行:
Feathersには画面遷移を行うための、ScreenとScreenNavigator...
Screenが画面そのもので、ScreenNavigatorがそれを管理するク...
*Screen
Screenはそのまま使うより、継承して使うことが多い。そして...
override protected function initialize():void
{
super.initialize();
//ここで初期化する
}
ScreenはSpriteを継承しているので、addChildで描画オブジェ...
Screen自体は単に画面の大もとになるというだけで、特筆する...
*ScreenNavigator
ScreenをScreenNavigatorに登録すると画面遷移が簡単にできる...
ScreenNavigatorへの登録はScreenNavigatorItemを使う。
var screenNavigator:ScreenNavigator = new ScreenNavigato...
baseSp.addChild(screenNavigator);
var screenNavigatorItem:ScreenNavigatorItem = new Screen...
screenNavigator.addScreen( "screen1", screenNavigatorIte...
あとは、
screenNavigator.showScreen("screen1");
とすればそのスクリーンが表示される。この表示される時にScr...
ここで注意しないといけないのは、ScreenNavigatorItemはScre...
new ScreenNavigatorItem( TestScreen1 );
としても、
new ScreenNavigatorItem( new TestScreen1() );
としてもScreenNavigatorItemのインスタンスは作れる。これら...
クラスを与えたときは、''画面遷移のときにdisposeが呼ばれて...
インスタンスを与えたときは、''そのインスタンスが保持され...
よってメモリを節約したいときはクラスを与えて初期化した方...
ちなみに私は自動でdisposeが行われないように全てインスタン...
ScreenNavigatorItemで便利なのは画面遷移のイベントを設定で...
screenNavigator.setScreenIDForEvent( "screen1Show", "scr...
としておくと、ScreenNavigatorに登録したスクリーンで
dispatchEventWith("screen1Show");
とすると、screen1のIDの画面へと遷移する。
画面遷移のアニメーションも好みの物に変更できる。たとえば...
screenNavigator.transition = Fade.createFadeInTransition...
となる。
**複数のScreenNavigator
ScreenNavigatorは複数同時に使うことができる。よって、たと...
*Screenの初期化の負荷分散
Adobe Airでのアプリ制作の弱点の一つとして、インスタンスの...
これを防ぐには遷移先の画面の初期化が終わるまでロード画面...
ロード画面の表示させかたとしては、一つはWorkerを使って別...
もう一つはタイマーで初期化を分散する方法である。つまり、...
protected var firstInitFunctions:Vector.<Function> = new...
それに初期化処理をpushしていく。
firstInitFunctions.push(function():void {
//初期化処理1
});
firstInitFunctions.push(function():void {
//初期化処理2
});
firstInitFunctions.push(function():void {
//初期化処理3
});
これをタイマーで一つずつ実行していく。
protected var firstInitTimerCnt:int = 0;
private function onInitTimerChick(e:TimerEvent):void
{
firstInitFunctions[firstInitTimerCnt]();
firstInitTimerCnt++;
if (firstInitFunctions.length <= firstInitTimerCnt) {
firstInitFunctions.length = 0;
//初期化終わり
}
}
すると処理が分散されるのでローダーのアニメーションはとま...
*「戻る」処理が必要ならStackScreenNavigator
StackScreenNavigatorなら画面遷移をスタックしてくれるので...
詳細は[[Starling+FeathersでStackScreenNavigator]]を参照の...
ページ名: