Использование класса Actionscript (MovieClip) в flex - PullRequest
4 голосов
/ 14 июня 2011

У меня есть фрагмент кода ActionScript, который реализует MovieClip.Кажется, я не могу отобразить это в своем приложении.

Что я пробовал:
1) Использование класса прямо в моем коде через UIObject и Sprite.Я могу создать UIObject, добавить Sprite, а затем добавить экземпляр класса.В моем приложении ничего не отображается.

2) Помещение класса в библиотеку flex (swc).Компилятор не позволит мне импортировать его или использовать в качестве экранного объекта.

3) Помещение класса в проект flex (swf).Файл прекрасно работает в одиночку, но при попытке использовать его в моем приложении выдает тот же «сломанный» значок.Предложения?

РЕДАКТИРОВАТЬ: Есть класс надстройки для отображения через библиотеку.Компилируется в файл .SWC.К сожалению, он использует полный экран в качестве «сценического» размера.Проблема, с которой я столкнулся раньше, когда он не был виден, была на самом деле (или я так думаю), что это было с правой стороны окна дисплея.Я установил точки останова в процедурах рисования и увидел, что они обновляются.Так что теперь я пытаюсь заставить его принять некоторые измерения.

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Вы можете создать UIComponent вместо UIObject и добавить мувиклип к UIComponent.Я всегда использовал UIComponent вместо UIObject, и мой спрайт всегда отображается правильно :) mxml и код ниже:

<mx:UIComponent>
    <mx:Yoursprite></mx:Yoursprite>
</mx:UIComponent>

или закодированы в ActionScript:

private function createSpriteInFlex():void
{
    var _uiComponent:UIComponent = new UIComponent();
    addElement(_uiComponent);

    var _sprite:YourSprite = new YourSprite();
    _uiComponent.addChild(_sprite);
}

EDIT

Вы можете просто добавить строку mxml следующим образом.

<com:myUIComponent width="100%" height="100%"></com:myUIComponent>

Таким образом, myUIComponent на самом деле является классом, который вы можете кодировать самостоятельно.Ниже я продемонстрирую, как вы можете добавить спрайт или мувиклип:

package com.myUIComponent
{
    public class myUIComponent extends UIComponent
    {
        public function myUIComponent()
        {
            super();

            addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event):void
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            //ADD YOUR SPRITE HERE
            var mySprite:YourSprite = new YourSprite();
            addChild(mySprite);
        }
    }
}
2 голосов
/ 14 июня 2011

1) Использование класса непосредственно в моем коде через UIObject и Sprite.Я могу создать UIObject, добавить Sprite, а затем добавить экземпляр класса.В моем приложении ничего не отображается.

Вы указали клип и размер перемещения?(Ширина и высота) и положение (х и у)?Размер обычно важнее, потому что x и y часто устанавливаются в 0, 0.

2) Putting the class in as a flex library (swc). The compiler won't let me import it or use it as a display object.

Вы добавили SWC в путь к своей библиотеке?Вы уверены, что ваш новый мувиклип включен в SWC?

3) Putting the class in as a flex project (swf). The file runs fine stand alone but gives me the same "broken" icon when I try to use it in my app.

Похоже, у вас есть проблема пути с встраиванием здесь;но вы должны показать свой код.

...