広告を画面外に移動する機能を備えた 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 は移動しますが、別のシーンで呼び出しても移動しません。