0

広告を画面外に移動する機能を備えた iAd を含む HUD レイヤーがあります。このコードを使用して、私が持っているシーンの 1 つに HUD レイヤーを追加します。

CCScene *scene = [CCScene node];

hudLayer *hud = [hudLayer node];
[scene addChild:hud z:1 tag:5];

MainMenuView *layer = [[[MainMenuView alloc] initWithHud:hud] autorelease];
[scene addChild:layer];

return scene;

hudLayer は、iAd クラス ファイル名です。

別のシーンに移動すると、別のシーンに HUD レイヤーを追加しても、HUD レイヤーはそのまま残ります。このコードで iAd の位置を移動して、この問題を解決しようとしました。

-(void)hideBanner:(BOOL)sender {
   if (sender) {
      [bannerView setCenter:CGPointMake([CCDirector sharedDirector].winSize.width/2,
                                        320+bannerView.frame.size.height/2)];
   }
   else {
      [bannerView setCenter:CGPointMake([CCDirector sharedDirector].winSize.width/2, 
                                        320-bannerView.frame.size.height/2)];
   }
}

シーンに追加した HUD レイヤーには、シーンを別のシーンに切り替える関数を呼び出すボタンがあり、次のコードを使用して上記の関数を呼び出します。

hudLayer *a = [[hudLayer alloc] init];
[a hideBanner:YES];

関数は呼び出されますが、iAd は動きません。HUD レイヤーの init 関数から同じ関数を呼び出してみましたが、iAd は移動しますが、別のシーンで呼び出しても移動しません。

4

0 に答える 0