在 rightparen 之前期望冒号并在 if 之前期望标识符
Posted
技术标签:
【中文标题】在 rightparen 之前期望冒号并在 if 之前期望标识符【英文标题】:expecting colon before rightparen and expecting identifier before if 【发布时间】:2014-09-02 16:32:04 【问题描述】:另一个可能很愚蠢的问题。 我遵循了一个教程(Richard Parnaby-King 的爆破游戏)。
我遇到了这个我似乎无法修复的恼人错误。
main.as(称为 test1):
package
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.Timer;
[SWF(width='800',height='600',backgroundColor='#FFFFFF',frameRate='25')]
public class Test1 extends MovieClip
var icon:FacebookIcon = new FacebookIcon();
var background:BG = new BG();
private var timer:Timer = new Timer(5000,-1);
private var bubbles:Array = [];
private var score:int;
private var textBox:TextField = new TextField;
private var textFormat:TextFormat = new TextFormat(null, 30);
public function Test1(); void
if(stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
private function init(Event = null):void
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
//add start button
icon.addChild(new StartButton());
icon.addEventListener(MouseEvent.CLICK, startGame);
icon.buttonMode = true;
icon.x = (stage.stageWidth / 2) - (icon.width / 2);
icon.y = (stage.stageHeight / 2) - (icon.height / 2);
addChild(icon);
textBox.defaultTextFormat = textFormat;
private function startGame(e:MouseEvent):void
icon.removeEventListener(MouseEvent.CLICK, startGame);
removeChild(icon);
removeChild(background);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, createBubble);
timer.start();
createBubble();
score = 0;
我得到了错误 1084: 语法错误:在 if 之前需要标识符
和
-1084:语法错误:在右括号之前需要冒号
就在哪里
if(stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
我做错了什么?尝试了一切。 非常感谢
【问题讨论】:
好吧,你的类、包和 init 方法中缺少右大括号 - 这只是复制和粘贴错误吗? 【参考方案1】:在构造函数的返回类型之前有一个分号。它应该是一个冒号:
public function Test1(): void
if(stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
【讨论】:
@Net.Uk.Sweet.. 是的,但是那些缺少的花括号呢?我不知道我们可以摆脱那种那种嘘声,我的意思是,代码!!。不应该是:else addEventListener(Event.ADDED_TO_STAGE, init);
等等
正是现在我得到 标签必须是一个简单的标识符。 in new var icon:FacebookIcon = new FacebookIcon;新的 var bg:BG = 新的 BG;
@VC.One - 这是 ActionScript 3.0 和 javascript 中完全合法的 if else 语句。在 Chrome 的开发工具的控制台中尝试一下。
Facebook 或 BG 类中的错误?我认为您发布的其余代码看起来还不错。
@net.uk.sweet.. 你是对的。我刚刚尝试过,AS3 did 让我摆脱了那种语法!!。每天学习新技巧。虽然我仍然更喜欢花括号,特别是对于复杂/嵌套循环。更容易看到一件事在哪里结束,另一件事从哪里开始..以上是关于在 rightparen 之前期望冒号并在 if 之前期望标识符的主要内容,如果未能解决你的问题,请参考以下文章
语法错误 - rightparen - ActionScript 3 - 使用数组