Recherche de fonction
Gilgamesh
Membre
Bonjour,
Le titre n'est pas très clair mais voilà mon problème : je cherche à faire disparaitre une image après une animation.
Voilà c'est génial si je ne mets pas "bg.visible=NO;" tout ce passe comme prévu j'ai mon animation c'est super jolie.
Le problème c'est que je veux supprimer ce sprite après son animation car il ne me sert plus et gène l'affichage.
Donc je change la visibilité mais si je rajoute cette ligne et bien je ne vois plus mon sprite du tout.
Comment faire pour changer la visibilité juste après la fin de mes animations
Question surement idiote mais je débute en ObjC.
Merci
Le titre n'est pas très clair mais voilà mon problème : je cherche à faire disparaitre une image après une animation.
<br /> Sprite * bg = [Sprite spriteWithFile:@"menu.png"];<br /> [bg setPosition:ccp(240, 160)];<br /> [self addChild:bg z:0];<br /> // anim<br /> id shaky = [FadeOutTRTiles actionWithSize:ccg(16,12) duration:1];<br /> // Fade out<br /> id fadeIn = [FadeIn actionWithDuration:2];<br /> id fadeOut = [fadeIn reverse];<br /><br /> <br /> [bg runAction: shaky];<br /> [bg runAction:fadeOut];<br /> bg.visible=NO;
Voilà c'est génial si je ne mets pas "bg.visible=NO;" tout ce passe comme prévu j'ai mon animation c'est super jolie.
Le problème c'est que je veux supprimer ce sprite après son animation car il ne me sert plus et gène l'affichage.
Donc je change la visibilité mais si je rajoute cette ligne et bien je ne vois plus mon sprite du tout.
Comment faire pour changer la visibilité juste après la fin de mes animations
[bg runAction: shaky];<br /> [bg runAction:fadeOut]<br />
Question surement idiote mais je débute en ObjC.
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si oui, c'est pas dans la doc Cocoa que tu trouveras ton bonheur. Sauf si Sprite implémente un protocole Cocoa, par exemple CAAction, et que tout cela est lié à CoreAnimation. Dans ce cas le delegate de ton action te servira, cf le Programming Guide de CoreAnim et le CookBook qui va avec etc.
Si ça n'a rien à voir et que c'est un truc propre au framework que tu utilises, et à la classe Sprite et tout... bah tant qu'on sait pas de quel framework tu parles et qu'on n'a pas la doc du framework, et que je retrouve pas ma boule de crystal, ça va être dur de t'aider :P
c'est le framework Cocos2D dispo sur http://www.cocos2d-iphone.org/wiki/doku.php/ en v0.8.2 et la classe sprite http://www.cocos2d-iphone.org/api-ref/0.7.3/interface_sprite.html.
Je viens de tester une bidouille dans le genre
mais boucle infinie
A la limite avec un NSTimer ou un performSelector, tu peux utiliser le même genre de bidouille qui va tester si isDone et rendre invisible bg en conséquence. Mais du coup ça sera un contexte différent, puisqu'il faut laisser la RunLoop s'exécuter pour que ton animation évolue évidemment... donc tout le reste sera asynchrone. Donc fait synchroniser au besoin ton code en conséquence, garder une référence de ton Sprite bg, etc...
Un delegate qui serait informé quand l'animation est terminée serait tellement plus adaptée... Ou une surcharge de la méthode appellée quand l'animation est finie, à défaut de delegate.