簡體   English   中英

用flashDevelop嵌入Movieclip

[英]embedding a Movieclip with flashDevelop

我正在嘗試將movieClip嵌入flashDevelop,但顯然無法正常工作,因為它無法識別其中的動畫片段。 這是我的代碼

package com.objects{

    import flash.display.MovieClip
    import flash.text.TextField;
    import flash.events.*;
    import flash.text.TextFormat;

    [Embed(source='../../../lib/fighter.swf', symbol='InfoBox')] 
    public class InfoBox extends gameObject {

        protected var textf:TextField;
        protected var s:String;
        public var type:Boolean = false;
        private var letter:Number = 0;
        private var string:Array;
        private var line:Number = 0;
        private var portNum:Array;


        public function InfoBox():void
        {
            portNum = new Array();
            portrait.stop();
            x = 400;
            y = 550;

            string = new Array();
            var format = new TextFormat();
            format.size = 18;
            textf = new TextField();
            textf.width = 550;
            textf.height = 85;
            textf.x = -220;
            textf.y = -60;
            textf.wordWrap = true;
            textf.defaultTextFormat = format;
            addChild(textf);
            contButton.addEventListener(MouseEvent.MOUSE_DOWN, StoryNext);
        }

        private function StoryNext(e:MouseEvent):void
        {
            if(string.length > 1)
            {
                portNum.splice(0,1);
                string.splice(0,1);
                trace(string.length);
                letter = 0;
            }
            else
            {
                contButton.removeEventListener(MouseEvent.MOUSE_DOWN, StoryNext);
                dispatchEvent(new Event("StoryContinue"));
            }
        }

        public function textInfo(msg:String,num:Number = 1):void
        {
            string.push(msg);
            portNum.push(num);
        }

        override public function updateObject():void
        {
            TypeWords();

        }// End UpdateObject

        public function TypeWords():void
        {
            if(type)
            {
                portrait.gotoAndStop(portNum[0]);
                var s:String = string[0];               
                if(letter <= s.length)
                {
                    textf.text = s.substring(0,letter);
                }               
                letter++
            }
        }
    }
}

我得到這個錯誤

C:\Users\numerical25\Documents\RealGames\FighterPilot\beta1FlashDev\src\com\objects\InfoBox.as(23): col: 4 Error: Access of undefined property portrait.

portrait是我在信息框影片剪輯中擁有的影片剪輯。 它已經在舞台上了,我給它起了肖像的實例名稱。 它可以在Flash中工作,但現在不能在flashDevelop中工作

嘗試按名稱訪問孩子。 它應該工作。

(getChildByName("portrait") as MovieClip).gotoAndStop(portNum[0]);

您需要在類上定義相應的屬性。 在這種情況下,您可以添加:

public var portrait:MovieClip;

如果是其他類型,例如Sprite ,則可以將其更改為該類型。

編輯:如果您在設置Flash Develop時遇到問題,我在那寫了一些教程

[嵌入(source ='.. / .. / .. / lib / fighter.swf',symbol ='InfoBox')]

我會說使用SWC而不是SWF,這將使****加載更加容易。

SWC將所有內容保留在適當的位置,而swf可以刪除不用於節省空間的資產。

同樣在Flash開發面板中,您將看到swc(如swf)並看到其中包含的所有類。 只需右鍵單擊它並將其添加到庫中。 您無需使用[embed]代碼。

除非您絕對需要瑞士法郎,否則請先嘗試一下。

要創建SWC,請使用發布設置下的Flash標簽。

您可以為MovieClip添加鏈接名稱,並將其導出為SWC,假設名為“ mymc”,然后將SWC文件復制到FD項目。 在您的代碼中,只需addChild(new mymc());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM