SIHOのプログラミングわーくワク

興味の赴くままに勉強してたら、読み書きできる言語は9個になりました。他にもいくつか気になる言語があったりなかったり?  まだまだ続く、楽しいお仕事わーくワク♪

  • « 
  • 10 
  • 11 
  • 12 
  • 13 
  • 14 
  • 15 
  • 16 
  • 17 
  • 18 
  • 19 
  • 20 
  • 21 
  • 22 
  • 23 
  • 24 
  • 25 
  • 26 
  • 27 
  • 28 
  • 29 
  • 30 
  • 31 
  • »

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Progression3のActionScriptをProgression4に書き換える (解決編)

2009.09.19 (Sat)

何とかAddChildの指定方法が分かったので、核になるコードを書き直してみました。
いくつもキャストを使っているので、「AddChildAt」を用いていました。
Progression 4 では、AS3の仕様と同じになった感じで、対象のコンテナに追加されるオブジェクトの数分しかindex番号を指定できなくなりました。
なので、「あとで入れるかもー?」とおもって「900」とか指定していた箇所でエラーを出していました。

manager.root.onSceneInit = function():void {
 // 実行したいコマンドを登録します。
 this.addCommand(
  new AddChildAt(this.container, indexPage,1),
  new AddChildAt(this.container, bgAnime,0)
 );
};

その点を注意して、書き直しました。
ちなみに、「onSceneLoad」で0にAddしたものと「onSceneInit」で「0」にAddしたものでは、「onSceneLoad」のもののほうが手前に表示されました。
この辺の仕組みは良く分からないなぁ。

function _complete( e:Event ):void {
// stage の初期設定を行います。
stage.align = StageAlign.TOP_LEFT;
stage.quality = StageQuality.HIGH;
stage.scaleMode = StageScaleMode.NO_SCALE;

// 環境設定を指定します。
Progression.initialize( new BasicAppConfig() );

// 新しい Progression インスタンスを作成します。
manager = new Progression( "index", stage );

// 開発者用に Progression の動作状況を出力します。
//Debugger.addTarget( manager );

// 外部同期機能を有効化します。
//manager.sync = true;

// シーンタイトルを設定します。
manager.root.title = "shinkai2009";

//ヘッダーを作成
var rightBtn:MovieClip = new HeaderView();
var rootBtn:MovieClip = new BacktoRootView();

//背景アニメ(アイドリング部)を作成
var bgAnime:MovieClip = new IdringView();

//ライブラリから各シーンを作成
var indexPage:MovieClip = new NavigationView();
var seamapPage:MovieClip = new SeamapView();

// シーン移動時に目的地がシーンオブジェクト自身もしくは子階層だった場合に、階層が変更された瞬間に送出されます。
// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
manager.root.onSceneLoad = function():void {
// 実行したいコマンドを登録します。
this.addCommand(
new AddChildAt(this.container, rightBtn,0)
);
};

// シーンオブジェクトが目的地だった場合に、到達した瞬間に送出されます。
// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
manager.root.onSceneInit = function():void {
// 実行したいコマンドを登録します。
this.addCommand(
new AddChildAt(this.container, indexPage,1),
new AddChildAt(this.container, bgAnime,0)

);
};

// シーンオブジェクトが出発地だった場合に、移動を開始した瞬間に送出されます。
// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
manager.root.onSceneGoto = function():void {
// 実行したいコマンドを登録します。
this.addCommand(
new RemoveChild(this.container, indexPage),
new RemoveChild(this.container, bgAnime)

);
};

// シーン移動時に目的地がシーンオブジェクト自身もしくは親階層だった場合に、階層が変更された瞬間に送出されます。
// このイベント処理の実行中には、addCommand() メソッド、及び insertCommand() メソッドによるコマンドの同期処理が行えます。
manager.root.onSceneUnload = function():void {
// 実行したいコマンドを登録します。
this.addCommand(
// 任意のコマンドを記述してください。
);
};

//各シーンを作成
//共通button部
//var rootBtn:MovieClip = new BacktoRootView();

// seamap シーンを作成/ var seamapPage:MovieClip = new SeamapView();
var seamap:SceneObject = new SceneObject("seamap");
seamap.onSceneInit = function() : void {
// 実行したいコマンドを登録します。
this.addCommand(
// 画面に表示する
new AddChildAt( this.container,seamapPage,0 ),
new AddChildAt( this.container,rootBtn,1 )

);
};
seamap.onSceneGoto = function() : void {
// 実行したいコマンドを登録します。
this.addCommand(
//画面から削除する
new RemoveChild( this.container, seamapPage ),
new RemoveChild( this.container,rootBtn )

);
};
manager.root.addScene( seamap );


// 最初のシーンに移動します。
manager.goto( manager.syncedSceneId );
}

コメント

断続的なインデックス指定について

いろいろと検証いただきありがとうございます!
断続的なインデックス指定の機能は ver 4 でも引き続きサポートしているのですが、タイムラインの場合にはそれらの機能が含まれているクラスがドキュメントクラスとして指定されていないために使用できないということになっているようです。
取り急ぎ使用されたい場合には以下のように変更していただくと使えるようになると思います。

15 行目を以下のように変更

var manager:Progression;

var manager:Progression;
var container:CastMovieClip;

28 行目を以下のように変更

manager = new Progression( "index", stage );

manager = new Progression( "index", stage );
addChild( container = new CastMovieClip() );

さ、最後が抜けてました・・・。

コードが変更できたら、以降は container に対して追加するようにすれば断続的なインデックスが使用可能です!

新たに記事にまとめました

ご教示ありがとうございます。
おかげさまで希望通りに動きました。記事も新たに書き直しました。

コメントの投稿

トラックバック

この記事のトラックバックURL

 | HOME | 

プロフィール

siho_prof

SIHO
しほ

Twitter:
SIHO_o

viva mambo, inc.
iPhone&iPad / Flash / Kinect
使用言語:Objective-C, ActionScript 3.0, Javascript, Lua, PHP, C#, C, C++, WSH。
F-site staff

Solar System Simulator 広報

Web,スマートフォン、Desktopを問わず、アプリ制作が好物。執筆は必要に応じて。お仕事くださいまし。

サイネージ:ガンダムフロント東京・キャラクターフォトスポット設計(2012/4~常設)

アトラクション:富士急ハイランド 戦国BASARA ゲーム設計&プログラミング(2010/7-2012/4にて常設展示)

イントラシステム:「某メーカー研究所KJ法システム」DB,Flash,PHPを含むソリューション設計&DB構築、「美術系専門学校の生徒管理システム」iPadクライアントを含むソリューション設計&DB構築

iPhone/iPadアプリ:某球団試合速報アプリ、『魂を熱くさせる 宇宙飛行士100の言葉』『Mitaka Gallery -てのひら宇宙-』

書籍同梱ソフト:『4次元デジタル宇宙紀行Mitaka』『DVD-ROM&図解 動く! 深海生物図鑑』『DVD-ROM&図解 ハッブル望遠鏡で見る宇宙の驚異』

著書:『世界一わかりやすい Windows 7』『世界一わかりやすい Flash CS3』

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。