0

我创建了一个名为 myfile.xfl 的 xfl 文件并将其链接到 Main.as。
因为我的脚本有点广泛,所以我计划将它分发到几个 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 文件必须至少有一个外部可见的定义”

include Sound.as从我的 Main.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,但该标签尚不存在,因此我无法在标签中指定它。

4

2 回答 2

0

第5007章常见原因

  • 未正确使用package
  • 包括import低于该package级别的任何级别的声明
于 2013-07-22T20:12:18.503 回答
0

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

于 2013-07-31T09:31:00.277 回答