繁体   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