встраивание мувиклипа с помощью flashDevelop - PullRequest
0 голосов
/ 07 февраля 2010

Я пытаюсь встроить мувиклип с помощью 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.

портрет - это фрагмент ролика, который находится внутри фрагмента ролика с информацией. это уже на стадии, и я дал ему имя экземпляра портрета. Он работал во флэш-памяти, но теперь его нет во flashDevelop

Ответы [ 4 ]

2 голосов
/ 13 марта 2011

Попробуйте получить доступ к детям по имени. Это должно работать.

(getChildByName("portrait") as MovieClip).gotoAndStop(portNum[0]);
1 голос
/ 07 февраля 2010

[Вставить (источник = '.. / .. / .. / Библиотека / fighter.swf', символ = 'InfoBox')]

Я бы сказал, что используйте SWC, а не SWF, это облегчит загрузку ****.

SWCs сохраняют все содержимое на месте, тогда как swf может удалять ресурсы, которые не используются для экономии места.

Также на панели разработки флэш-памяти вы увидите swc (например, swf) и все включенные классы. Просто щелкните по нему правой кнопкой мыши и добавьте в библиотеку. Вам не нужно будет использовать код [embed].

сначала попробуйте, если вам абсолютно не нужен swf.

Чтобы создать SWC, используйте вкладку «Flash» в настройках публикации.

1 голос
/ 07 февраля 2010

Вам необходимо определить соответствующие свойства вашего класса. В этом случае вы можете добавить:

public var portrait:MovieClip;

Если это какой-то другой тип, например Sprite, вы можете изменить определение на это.

РЕДАКТИРОВАТЬ: Если у вас возникли проблемы при настройке Flash Develop, я написал несколько руководств по этому

0 голосов
/ 12 сентября 2012

вы можете добавить имя ссылки для вашего MovieClip и экспортировать его как SWC, предположим, с именем «mymc» затем скопируйте файл SWC в ваш проект FD. в вашем коде просто добавьте addChild (new mymc ());

...