2013-07-22 63 views
0

我創建了一個名爲myfile.xfl的xfl文件並將其鏈接到Main.as.
因爲我的腳本很廣泛,所以我計劃將它分發到幾個as-files。flash actionscript error 5007 while file is not linked or included in any way

的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行,認爲由於某種原因必須導致該問題。當我重新發布錯誤再次彈出,閃光燈自動重新打開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,但標籤尚不存在,所以我無法在標籤中指定它。

+0

我想你在清除包含後清理了項目? –

+0

@PeteTNT TNT,因爲我不完全確定你指的是什麼,答案可能不是。你到底什麼意思? – silvith

+0

對不起,我讀得太快了,以爲它是FlashBuilder項目。我的意思是如果Sound.as引用被緩存在某處,它會導致錯誤。要麼做一個新的項目,並嘗試看看它是否再次發生,或者嘗試評論這些行,var snd:Sound;並導入flash.media.Sound;暫時看看Flash程序是否只是erm ...困惑。 –

回答

0

我回答這個問題因爲出於某種原因,錯誤消失了,我不知道爲什麼。我不想讓它打開,我寧願刪除它,因爲它對任何人都沒用,但我不知道該怎麼做。

0

#5007通常是由

  • 造成無法正常使用package
  • 包括import聲明如下package級別的任何級別
相關問題