2009-10-03 39 views
0

我在AS3中有if/else if/else if/else if/else语句。如何使用else if {var in AS3不返回1083错误?

这是一个从xml文件读入日期的日历。 if/else if/else语句根据是否有事件来控制日期的外观,以及它是过去/现在还是将来。 MouseEvent是一个显示事件信息的工具提示。

最后一节是

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); 
} 

如果我重复这个声明里,我收到了1084对,如果{VAR使用别的...

我可以用别人,但后来如果我启动下一节if/else,而它做我需要的东西 - 外观被最后一个if/else覆盖。

我想这样做,因为只有一个表示未来日期的表述,这意味着如果有未来的事件 - 它没有突出显示。

如何在使用else的情况下重复它if {var,没有它返回1084?

(任何援助将因为我有AS3不甚了解不胜感激。)

-

更新:

非常感谢你的回复。

该文件是一个.as文件,并且它相当长,所以我所做的就是将它上传here 作为一个.txt文件。还有2个小的gif图片可以尝试和展示我想要达到的目标。 (您会注意到(在图片中)工具提示出现在突出显示的日期上,但除此之外,未来日期不会突出显示,因此除非您将鼠标悬停在某个日期之外,否则实际上不能确定是否存在事件。)

我希望那样可以。

我没有检查,以确保在发布之前我没有错过左大括号,但我认为错误超出了我的理解。

+0

非常感谢您的回复,我在文本文件中添加了更多信息(因为.as文件可能有点长),并且我已将它添加到最初的问题中。 当发布.swf文件时,还有其他相应的文件被写入,但大多数文件都在这个.txt文件中。 – Ina 2009-10-06 04:19:47

回答

4

1084是一个错误,指示错误的语法。你错过了关闭支撑或沿着这些线的东西。发布完整的功能代码,如果你想得到更精确的答案:)

0

它看起来像你正在改变你下载的库。我想我理解你的问题,不幸的是,我们很难用确切的解决方案来帮助你。

块遵循此模式:

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 
} 

这是正路if报表工作。只能有一个else,最后必须正确。它处理当所有的ifelse if条件都不匹配时发生的情况。这有点像“最后的手段”行动。

您在所链接代码的评论中说:“如果没有NO Events,此块控制日期的样子。”并且你想添加一个处理有事件的块。这意味着你想添加一个新的else if。要做到这一点,你需要提供一个条件。

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 
} 

的代码是一个有点复杂,比我愿意投资,以帮助您确定如何编写评估为true,当有该日期的事件在特定日期的条件。但是,与我所显示的表单匹配的声明应该可以正常工作并避免1084错误。

+0

非常感谢您花时间看我的问题。对于这种迟到的回复,我表示歉意,答复通知必须已经进入垃圾邮件。 我实际上已经多次尝试添加新的陈述,但正如我所提到的,我的知识是有限的。但是你已经证实我认为可能是这种情况。所以,再次感谢你。 – Ina 2009-11-03 04:13:42