代码之家  ›  专栏  ›  技术社区  ›  Larocque

1084:语法错误:函数前应为右括号

  •  1
  • Larocque  · 技术社区  · 7 年前

    我是as3新手,你能帮我吗。

    获取此错误1084:语法错误:函数之前需要右括号。

    如果你想知道其余的代码,请告诉我。这一行可能无法解释所有需要的信息。

    public function U1A4_Monnaie():void
        {
    

    这是原始代码。我数了一下收口和收口的括号数量,它们似乎相互匹配,但我可能错了。。。

    package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFieldType;
    import flash.text.TextFormat;
    import flash.text.TextInteractionMode;
    
    public class U1A4_Monnaie extends MovieClip {
    
        private var monMessage:TextField=new TextField; 
        private var maMiseEnForme:TextFormat=new TextFormat;
        **private var btnSoumettre:Sprite;
        private var montant:TextField=new TextField;** 
    
        public function U1A4_Monnaie():void
        {
            montant = new TextField();
            montant.border=true;
            montant.text = "100";
            montant.height = 20;
            montant.type = TextFieldType.INPUT;
            this.addChild(montant);
    
            btnSoumettre = new Sprite();
            btnSoumettre.y = 22;
            btnSoumettre.graphics.beginFill(0xFF0000, 1);
            btnSoumettre.graphics.drawRect(0, 0, 100, 20);
            btnSoumettre.graphics.endFill();
            this.addChild(btnSoumettre);
            btnSoumettre.addEventListener(MouseEvent.CLICK, calculeMonnaie);
    
    
    
        }
    
        private function calculeMonnaie(event:MouseEvent):void {
    
    
            nouvMessage.font="Arial";
            nouvMessage.size=20;
            nouvMessage.bold=true;
            nouvMessage.color=0xFFFFFF;
            nouvMessage.x=20;
            nouvMessage.y=20;
    
            maMiseEnForme.font="Arial";
            maMiseEnForme.size=20;
            maMiseEnForme.bold=true;
            maMiseEnForme.color=0x660000;
            monMessage.x=20;
            monMessage.y=190;
    
            monMessage.autoSize=TextFieldAutoSize.LEFT;
            monMessage.border=true;
            monMessage.defaultTextFormat=maMiseEnForme;
    
    
            var somme:Number;
            var totalCents:int;
            var pieces25Cents:int=0;
            var pieces10Cents:int=0;
            var pieces5Cents:int=0;
            var pieces1Cent:int=0;
            var restant:int=0;
            var nouvMessage:String;
    
            somme = Number(montant.text);
            totalCents = int(somme * 100);
    
    
            pieces25Cents = totalCents / 25;
            restant= totalCents % 25;
    
            pieces10Cents = restant  / 10;
            restant = restant % 10;
    
            pieces5Cents = restant / 5;
            restant = restant % 5;
    
            pieces1Cent = restant;
    
            montant.text="";
    
            nouvMessage =("Montant à transformer en monnaie: " + somme + "$" + 
                "\n25 cents: " + pieces25Cents + 
                "\n10 cents: " + pieces10Cents + 
                "\n5 cents: " + pieces5Cents + 
                "\n1 cent: " + pieces1Cent);
    
            trace()monMessage.text=nouvMessage;
            addChild(monMessage);
    
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   BadFeelingAboutThis    7 年前

    这种错误有时可能具有欺骗性,因为即使所有括号都在那里,也可以抛出这种错误。

    trace()monMessage.text=nouvMessage; 
    

    之后应该有一个终结者 trace()

    trace(); monMessage.text=nouvMessage;
    

    或者(因为空轨迹相当无意义),您可能想执行以下操作:

    trace(monMessage.text = nouvMessage); 
    

    它将跟踪 monMessage.text

    尽管大多数人可能会同意这更干净:

    monMessage.text = mouvMessage;
    trace(monMessage.text);