fonction et return - Flash/ActionScript - Programmation
Marsh Posté le 31-08-2006 à 21:15:03
(loadMovie() utilisé seul est une fonction globale, antédiluvienne et il est admis que son usage est à proscrire)
mcItem.loadMovie() est une méthode de la classe MovieClip, et retourne un type Void, dixit la doc. Ce qui ne correspond pas à l'usage que tu veux en faire. tu dois donc l'encapsuler dans une autre fonction perso qui effectue aussi un test et qui retournera ensuite ce que tu veux. Ici le test à encapsuler est un truc du style : if(typeof(this.mcCible.mcClipAttaché) != 'movieclip')
tu peux étendre la classe MovieClip pour ça. difficile de répondre plus avant sans plus d'informations.
note que beaucoup de méthodes retournent qqch. Par exemple : MovieClip.attachMovie retourne une référence à un MC, idem pour MovieClip.createEmptyMovieClip. Mais on ne pratique pas ça de manière généralisée comme le return 0; sytématique en C, par ex.
Sur ton exemple précis, j'éviterai MovieClip.loadMovie() pour utiliser un MovieClipLoader à la place, qui dispose d'un événement onError.
Marsh Posté le 31-08-2006 à 22:22:01
oui mais j'avais utilisé ça comme exemple, dans la réalité c'etait une fonction propre que j'ai créé loadMap(), mais quand je fais
function loadMap(test)
{
return true;
}
if(loadMap(blablabla))
{
trace("ok" );
}
et bien il me fait pas mon trace !
Marsh Posté le 31-08-2006 à 22:35:14
en faisant ctrl+C, ctrl+V depuis ton propre message vers Flash sans aucune modif, tu verras que le code que tu viens de taper fonctionne Regarde donc plutôt le reste du code de ta fonction loadMap.
à noter qu'il est d'usage de typer les valeurs de retour et les arguments de ses fonctions, ce qui aide grandement au débuggage...
Code :
|
Marsh Posté le 31-08-2006 à 23:39:48
ça je maitrise pas encore les String et les Boolean.. ça me perturbe un peu en fait, j'ai l'impression qu'à chaque fois que je mets un truc comme ça ça marche plus !hihi
Marsh Posté le 31-08-2006 à 15:12:23
la question est surement bete.. mais bon je vais la poser quand même
en PHP, quand on fait
la fonction est donc executée et la condition est donc executée (car la fonction a un return qui n'est pas "false" )
... en actionscript... j'ai tenté de faire (en résumé !)
if(loadMovie("toto.swf,mcClip))
{
trace("ok" );
}
... mais ça marche pas ! il me trace pas mon OK même si le loadMovie est ok...
comment faire pour qu'une fonction return quelquechose et permette d'executer une commande dans un if ?
Merci
Freed