flash actionscript错误5007,而文件未以任何方式链接或包含

时间:2013-07-22 10:51:35

标签: actionscript-3 flash actionscript

我创建了一个名为myfile.xfl的xfl文件,并将其链接到Main.as.
因为我的脚本非常广泛,所以我打算将它分发给几个副文件。

Main.as看起来像这样,并且从xfl文件中正确链接:

package  {

    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.xml.*;
    import flash.events.Event;
    import flash.display.Loader;
    import flash.display.LoaderInfo;
    import flash.display.MovieClip;
    import flash.text.*;
    import flash.events.MouseEvent;
    import flash.media.Sound;
    import flash.media.SoundChannel;

    public class Main extends MovieClip
    {
        var bestand:String;

        var titelFont:Font = new Titelfont();
        var werkFont:Font = new Werkfont();
        var titelfmt:TextFormat = new TextFormat();
        var werkfmt:TextFormat = new TextFormat();
        var inputfmt:TextFormat = new TextFormat();

        var snd:Sound;
        var cnl:SoundChannel = new SoundChannel();

        var xmlLoader:URLLoader;
        var myList:XML;

        var introClip:Containerclip = new Containerclip();
        var dicteeClip:Containerclip = new Containerclip();

        public function Main()
        {           
            //DE INFORMATIE UIT DE URL //
            //bestand = LoaderInfo(this.root.loaderInfo).parameters["bestand"];
            //bestand +=  ".xml";
            bestand = "xml/bron.xml"
            loadXml();
        }
        function loadXml():void
        {
            xmlLoader = new URLLoader(new URLRequest(bestand));         
            xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
        }
        function xmlLoaded(event:Event):void
        {
            myList = new XML(event.target.data);
            myList.ignoreWhite = true;

            createTextFormat();
            createIntro();
            createDictee();
            createResultaten();
        }   
        include "CreateStuff.as"
        include "Dictee.as"
    }   
}

你可以在最后看到我的包括:createstuff.as和dictee.as 我正在开发第三个包含名为 Sound.as 的包含,并在错误5007弹出时尝试预览我的文件。 “5007:ActionScript文件必须至少有一个外部可见的定义”

我从Main.as中删除了include Sound.as行,认为由于某种原因必定会导致问题。当我重新发布再次弹出错误时,flash会自动重新打开Sound.as文件。虽然从任何地方都没有链接到它。

我的其他文件是 CreateStuff.as

function createTextFormat() : void {
    titelfmt.size = 32;
    titelfmt.color = 0x003399;
    titelfmt.font = titelFont.fontName;

    werkfmt.size = 24;
    werkfmt.color = 0x000000;
    werkfmt.font = werkFont.fontName;

    inputfmt.size = 32;
    inputfmt.color = 0x333333;
    inputfmt.font = werkFont.fontName;
    //inputfmt.
}
function createTextfield (fmt) : TextField {
    var tf:TextField = new TextField();
    tf.defaultTextFormat = fmt;

    if (fmt == titelfmt) {
        tf.multiline = false;
        tf.autoSize = "center";
        tf.selectable = false;
        tf.y = 10;
        tf.x = stage.stageWidth / 2;
    } else if (fmt == werkfmt) {
        tf.autoSize = "left";
        tf.multiline = true;    
    } else if (fmt == inputfmt) {
        tf.multiline = true;
        tf.width = 300;
        tf.height = 40;
        tf.border = true;
        tf.borderColor = 0xCCCCCC;
        tf.type = TextFieldType.INPUT; 
    }
    return (tf);
}
function createIntro() : void {
    introClip.x = 0;
    introClip.y = 0;
    introClip.name = "introClip";

    var nttf:TextField = createTextfield(titelfmt);
    nttf.text = "Instructie"
    introClip.addChild(nttf);

    var itf:TextField = createTextfield(werkfmt);
    itf.text = "Wat weet jij nog?\nLuister naar de woorden.\nSchrijf ze op.";
    itf.width = 300;
    itf.x = stage.stageWidth / 2 - 150;
    itf.y = 120;
    itf.selectable = false;
    introClip.addChild(itf);

    var startBtn:Beginknop = new Beginknop();
    startBtn.x = stage.stageWidth / 2 - startBtn.width / 2;
    startBtn.y = 300;
    startBtn.addEventListener(MouseEvent.CLICK, showDictee);
    introClip.addChild(startBtn);

    addChild(introClip);
}
function createResultaten() : void {

}

Dictee.as

function createDictee () : void {
    dicteeClip.x = 0;
    dicteeClip.y = 0;

    var nttf:TextField = createTextfield(titelfmt);
    nttf.text = "Dictee"
    dicteeClip.addChild(nttf);

    var iptf:TextField = createTextfield(inputfmt);
    iptf.x = 135;
    iptf.y = 205;
    dicteeClip.addChild(iptf)

    var dicteeSpeaker:Luidspreker = new Luidspreker();
    dicteeSpeaker.x = stage.stageWidth / 2 - dicteeSpeaker.width/2;
    dicteeSpeaker.y = iptf.y - dicteeSpeaker.height - 40;
    //dicteeSpeaker.addEventListener (MouseEvent.CLICK, playSnd);
    dicteeSpeaker.name = dicteeSpeaker;
    dicteeClip.addChild(dicteeSpeaker);

    var volgendeKnop:Controleknop = new Controleknop();
    volgendeKnop.x = iptf.x + iptf.width + 30;
    volgendeKnop.y = iptf.y;
    dicteeClip.addChild(volgendeKnop);
}
function showDictee(event:MouseEvent) : void {
    addChild(dicteeClip);
    removeChild(introClip);
    speelDictee();
}
function speelDictee() : void {
    //bepaal geluid
    //afspelen geluid
    //volgende knop-actie
}

我最初调用文件 Sound.as ,但认为错误可能来自Sound是保留字,所以我将其更改为 Sounds.as 我在这里已经超出了我的深度,我不知道为什么错误弹出。或者文件Sound.as没有链接。

我的Flash版本是Flash-CC,但标签尚不存在,所以我无法在标签中指定它。

2 个答案:

答案 0 :(得分:0)

#5007 通常由

引起
  • 未正确使用package
  • import级以下任何级别加入package语句

答案 1 :(得分:0)

我正在回答这个问题,因为出于某种原因,错误消失了,我不明白为什么。我不想把它打开,我宁愿删除它,因为它对任何人都没用,但我不知道该怎么做。