Skip to content

cocos2d-x popSceneする時、pop先のSceneのメソッドを実行する

2013年1月7日

popした時に情報を更新する必要が出てきたから調べた。

Obj-Cのときは、UINavigationControllerからviewControllersを取得しなければならなかったから、そういうのが取得できるかな~?と思って調べたら、「m_pobScenesStack」っていうのがそれに当たるらしいけど、それは[protected]なので取得することは叶わない。

じゃあどうするかってーと、結果は簡単でした。Popの時に以下のようにすればOK

    CCDirector::sharedDirector() -> popScene();
    // メソッド実行のためpopされたSceneを取得
    kScene* scene = (kScene*)CCDirector::sharedDirector() -> getRunningScene();
    // 対象Sceneのpublicメソッド実行
    scene -> refreshAction();

ソースを見てみると、popSceneの時点でRunningSceneが既に入れ変わっていました。

なので、Popした時にgetRunningSceneをしてそのSceneを取得。あとは定義しておいたメソッドを叩けばOK。

こう思えばObj-Cよりは簡単ですね〜。

広告

From → cocos2d, cocos2d-x

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。