2009-10-03 8 views
0

J'ai une instruction if/else if/else if/else if/else dans AS3.Comment utiliser else si {var dans AS3 sans retourner l'erreur 1083?

C'est un calendrier qui lit les dates d'un fichier XML. Les instructions if/else if/else contrôlent l'apparence d'une date selon qu'elle a un événement et qu'elle soit passée/présente ou future. MouseEvent est une info-bulle qui affiche les informations sur l'événement.

La dernière section est

else { 
var thisday:String = "<b><font color=\"#666666\" size=\"9\"> <u><font size=\"12\"> -</font> " + yy + " <font size=\"12\">-</font> " + GlllStringUtil.checkDigits((mm + 1).toString()) + " <font size=\"12\">-</font> " + i.toString() + " <font size=\"12\">- </font></u></font></b> "; 
myCLabel = new ICLabel(); 
myCLabel.date.htmlText = GlllStringUtil.checkDigits(i.toString()); 
myCLabel.date.background = false; 
myCLabel.date.textColor = "0x666666"; 
myCLabel.date.autoSize = TextFieldAutoSize.CENTER; 
myCLabel.date.selectable = false; 
myCLabel.date.mouseEnabled = true; 
myCLabel.y = 0; 
myCLabel.x = 25 * (i - 1); 
myCLabel.name = i.toString(); 
myCLabel.data = thisday; 
myCLabel.addEventListener(MouseEvent.MOUSE_OVER, myCLabel_mouse_over); 
myCLabel.addEventListener(MouseEvent.MOUSE_OUT, myCLabel_mouse_out); 
calendarHolder.addChild(myCLabel); 
} 

Si je le répète dans la déclaration que je reçois un 1084 pour l'utilisation else if {var ...

je peux utiliser d'autre, mais si je commence à la section suivante avec if/else et pendant qu'il fait ce dont j'ai besoin - l'apparence est surchargée par ce dernier if/else. J'essaie de faire cela parce qu'il n'y a qu'une seule déclaration pour l'apparition de dates futures, ce qui signifie que s'il y a un événement futur - il n'est pas en surbrillance.

Comment puis-je le répéter à l'intérieur en utilisant else if {var, sans le retour 1084?

(Toute aide serait grandement appréciée que je connais très peu de AS3.)

-

Mise à jour:

Merci beaucoup pour votre réponse.

Le fichier est un .as et il est assez long, ce que j'ai fait est de le télécharger here en tant que fichier .txt. Il y a aussi 2 petites images gif pour essayer de montrer ce que j'essaie d'obtenir. (Vous remarquerez (dans l'image) que la pointe de l'outil apparaît sur une date en surbrillance, mais sinon les dates futures ne sont pas mises en surbrillance, donc vous ne pouvez pas dire si un événement survient.)

J'espère que ça va.

J'ai vérifié pour m'assurer que je n'avais pas manqué l'accolade fermante avant de poster, mais je pense que l'erreur est au-delà de ma compréhension.

+0

Merci beaucoup pour votre réponse, j'ai ajouté des informations supplémentaires dans un fichier texte (puisque le fichier .as pourrait être un peu long), et je l'ai ajouté à la question initiale. D'autres fichiers correspondants sont écrits dans le fichier .swf lors de sa publication, mais la majorité se trouve dans ce fichier .txt. – Ina

Répondre

4

1084 est une erreur indiquant une mauvaise syntaxe. vous avez manqué de fermer une accolade ou quelque chose du genre. afficher le code de fonction complet si vous voulez obtenir une réponse plus précise :)

0

Il semble que vous modifiez une bibliothèque que vous avez téléchargée. Je pense que je comprends votre problème, malheureusement, il sera difficile de vous aider avec une solution exacte.

Les blocs suivent ce modèle:

if(/*<some condition>*/) { 
    // create a specific type of Label 
} 
else if(/*<another condition>*/) { 
    // create a different type of Label 
} 
else if(/*<yet another condition>*/) { 
    // create yet another type of Label 
} 
else { 
    // create a default type of Label 
} 

Ceci est la façon dont if déclarations fonctionnent. Il ne peut y avoir qu'un seul else et il doit arriver juste à la fin. Il gère ce qui se passe lorsque toutes les conditions if et else if ne correspondent pas. C'est un peu comme l'action de «dernier recours».

Vous dites dans les commentaires du code que vous avez lié: "Ce bloc contrôle à quoi ressembleront les dates s'il n'y a PAS d'événements." et vous voulez ajouter un bloc qui gère quand il y a des événements.Cela signifie que vous voulez ajouter un nouveau else if. Pour ce faire, besoin de pour fournir une condition.

if(/*<some condition>*/) { 
    // create a specific type of Label 
} 
else if(/*<another condition>*/) { 
    // create a different type of Label 
} 
else if(/*<yet another condition>*/) { 
    // create yet another type of Label 
} 
// Here you need a new condition 
else if(/*<some condition that evaluates to true when there are events>*/) { 
    // create a label styled to show off events 
} 
else { 
    // create a default type of Label 
} 

Le code est un peu plus compliqué que ce que je suis prêt à investir pour vous aider à déterminer comment écrire une condition qui permet d'évaluer à vrai pour une date donnée quand il y a des événements pour cette date. Mais une déclaration qui correspond au formulaire que j'ai montré devrait fonctionner et contourner votre erreur 1084.

+0

Merci beaucoup d'avoir pris le temps de regarder mon problème. Je m'excuse pour une réponse si tardive, la notification de réponse doit avoir été dans le spam. En fait, j'avais essayé à plusieurs reprises d'ajouter une nouvelle déclaration, mais comme je l'ai mentionné, mes connaissances sont limitées. Cependant, vous avez confirmé ce que je pensais être probablement le cas. Alors, merci encore. – Ina

Questions connexes