【问题标题】:ActionScript 3 Error: 1083: Syntax error: package is unexpectedActionScript 3 错误:1083:语法错误:包意外
【发布时间】:2016-07-14 02:41:51
【问题描述】:

您好,我目前正在学习如何使用 Flash,所以我正在创建一本填色书作为一个项目,但我的代码却遇到了问题。我写的代码是:

import coloring; 
PrevBtn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_14);

function fl_ClickToGoToAndStopAtFrame_14(event:MouseEvent):void
 {
    gotoAndStop(40);
 }

    HomeBtn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_11);

    function fl_ClickToGoToAndStopAtFrame_11(event:MouseEvent):void
    {
    gotoAndStop(10);
    }


    NextBtn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_13);

    function fl_ClickToGoToAndStopAtFrame_13(event:MouseEvent):void
    {
    gotoAndStop(20);
    }



    HelpBtn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_31);

    function fl_ClickToGoToAndStopAtFrame_31(event:MouseEvent):void
    {
    gotoAndStop(45);
    } 

任何帮助将不胜感激。提前致谢!

**更新: 因此,我创建了 coloring.as,现在将其导入到我的代码中,但是当我到达我的着色表时,我得到了一个进一步的错误,上面写着:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at laurenBurke/frame15()
at flash.display::MovieClip/gotoAndStop()
at laurenBurke/fl_ClickToGoToAndStopAtFrame_4()**

coloring.as 文件包含以下代码

package {
import flash.display.Sprite;
import flash.geom.ColorTransform;
import flash.events.MouseEvent;

public class coloring extends Sprite {
    public var Design1:Design1 = new Design1();
    public var palette:palette_mc;
    public var pal_color:ColorTransform;
    public var colors:Array=new Array(0x000000,0xFFFFFF,0xFF0000,0xFF4040,0x333399,
                                      0x99CCCC,0xFFCC00,0xFFFF66,0x33CC00,0x99FF66,
                                      0x660099,0x9933FF,0xFF8000,0xFF9966,0xFF0099,
                                      0xFF99CC,0x0099CC,0x6699CC,0x666666,0xCCCCCC,
                                      0x003366,0x000033,0x99CC99,0x4E9A4E,0x9966FF,
                                      0x990066);
    public var current_color:int=0;
    public function coloring():void {
        addChild(Design1);
        Design1.addEventListener(MouseEvent.CLICK,on_Design1_click);
        for (var i:int=0; i<26; i++) {
            palette = new palette_mc();
            pal_color=palette.transform.colorTransform;
            pal_color.color=colors[i];
            palette.transform.colorTransform=pal_color;
            palette.x=40+i*60;
            palette.y=300;
            palette.ind=i;
            addChild(palette);
            palette.addEventListener(MouseEvent.CLICK,on_palette_click);
        }
    }
    public function on_palette_click(e:MouseEvent):void {
        var palette_clicked:palette_mc=e.currentTarget as palette_mc;
        current_color=palette_clicked.ind;
    }
    public function on_Design1_click(e:MouseEvent):void {
        for (var i:int = 0; i < Design1.numChildren; i++) {
            if (Design1.getChildAt(i).hitTestPoint(mouseX,mouseY,true)) {
                pal_color=Design1.getChildAt(i).transform.colorTransform;
                pal_color.color=colors[current_color];
                Design1.getChildAt(i).transform.colorTransform=pal_color;
            }
        }
    }
}
}

【问题讨论】:

  • 您应该将您的coloring 类放在coloring.as 文件中,然后将其导入您的Flash 应用程序或将其设置为您的应用程序的文档类(如果是这种情况)。
  • @akmozo 感谢您的回复!当我说我是 Flash 新手时,我的意思是全新的。你介意解释一下我是怎么做到的吗?
  • 好的,没问题。如果该类是您的文档类,请查看here,如果它只是一个类,则必须将其保存为您的 Flash 项目旁边的coloring.as,然后使用以下命令导入它:import coloring; ...
  • 感谢磨坊!我现在就试试看:)
  • @akmozo 很抱歉再次打扰您,但我尝试了您的建议并认为我做错了什么。有什么建议吗?

标签: actionscript-3 flash


【解决方案1】:

在此处使用与类本身相同的标识符声明 Design1:

public var Design1:Design1 = new Design1();

... 正在创建一个模棱两可的引用。稍后当您调用addChild(Design1); 时,您可能会尝试将类对象本身而不是实例添加到舞台上。尝试将 var 名称更改为 camel-case。

【讨论】:

    猜你喜欢
    • 2013-08-30
    • 2014-10-03
    • 2014-06-01
    • 2018-08-03
    • 1970-01-01
    • 2016-08-15
    • 2016-05-30
    • 2011-10-28
    • 2014-12-18
    相关资源
    最近更新 更多