#apache-flex #movieclip
#apache-flex #movieclip
Вопрос:
У меня есть фрагмент кода Actionscript, который реализует MovieClip. Кажется, я не могу заставить его отображаться в моем приложении.
Что я пробовал:
1) Использование класса непосредственно в моем коде через UIObject и Sprite. Я могу создать UIObject, добавить Sprite, а затем добавить экземпляр класса. В моем приложении ничего не отображается.
2) Помещение класса в качестве библиотеки flex (swc). Компилятор не позволяет мне импортировать его или использовать в качестве отображаемого объекта.
3) Ввод класса в виде гибкого проекта (swf). Файл отлично работает автономно, но выдает мне тот же значок «неработающий», когда я пытаюсь использовать его в своем приложении.
Здесь я упускаю из виду какой-то ключевой фактор. Предложения?
РЕДАКТИРОВАТЬ: Получил класс надстройки для отображения через библиотеку. Он компилируется в SWC-файл. К сожалению, в качестве размеров «сцены» используется полноэкранный режим. Проблема, с которой я сталкивался раньше, когда он не был виден, на самом деле (или я так думаю) заключалась в том, что он находился с правой стороны окна отображения. Я установил точки останова в процедурах рисования и мог видеть, что он обновляется. Итак, теперь я пытаюсь заставить его принимать некоторые измерения.
Комментарии:
1. 1 за то, что рассказали нам, что вы пробовали.
2. Я надеюсь реализовать некоторую форму «кучевого облака тегов». Он был написан как надстройка WP, но с открытым исходным кодом, поэтому, возможно, я смогу его адаптировать.
3. Все работает так, как должно. Это неправильный ваш код. Попробуйте это в простом тесте и работайте оттуда. Публикуйте любой код, на который наткнетесь.
Ответ №1:
Вы можете создать UIComponent вместо UIObject и добавить movieclip в 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);
}
Редактировать
Вы можете просто добавить строку 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);
}
}
}
Комментарии:
1. Пробовал это как часть локального использования класса. Добавил UIComponent на мою страницу, затем добавил Sprite и, наконец, MovieClip. Казалось, что все в порядке, но ничего не отображалось.
2. Я предположил — возможно, неправильно, что его ссылка на UIObject была опечаткой для UIComponent; основываясь на быстром поиске, UIObject был частью Flex 1.5; но ссылки не отображаются для Flex 2 или более поздней версии.
3. Обычно это должно работать. Вы пробовали кодированный подход или mxml-подход? Я обновлю свой пост другим (закодированным) примером.
Ответ №2:
1) Использование класса непосредственно в моем коде через UIObject и Sprite. Я могу создать UIObject, добавить Sprite, а затем добавить экземпляр класса. В моем приложении ничего не отображается.
Вы указали клип для перемещения и его размер? (Ширина и высота) и положение (x и y)? Размер обычно более важен, потому что 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.
Похоже, у вас проблема с путем при встраивании сюда; но вам пришлось бы показать свой код.
Комментарии:
1. MovieClip имеет размер и положение. При добавлении из внешнего файла (будь то SWF или SWC) Я вижу, что он расположен, но он не будет отображаться.
2. @ethrbunny Пожалуйста, покажите свой код для «добавления этого». Вы его внедряете? Или используя SWF-загрузчик? Или что-то еще?