Элементы формы не отображаются в выводе - PullRequest
1 голос
/ 17 декабря 2011

Я создал проект Flex в Flash Builder 4.5. Затем я добавил в проект библиотеки fl.controls (а затем библиотеки mx.controls). Я добавляю скриншот, чтобы вы могли видеть настройки и код.

enter image description here

Однако, когда я запускаю / отлаживаю его, там ничего не появляется. Абсолютно белый.

Я работал с fl.controls раньше, я использовал Flash CS5 для компиляции проекта ActionScript, и они работали правильно.

Есть ли какая-то особая причина, по которой он не работает в Flash Builder?

ОБНОВЛЕНИЕ: Когда я добавляю графику к текстовому вводу, т.е.

ti.graphics.beginFill(0xFF0000);
ti.graphics.drawRect(0, 0, 100, 30);
ti.graphics.endFill();

Я вижу форму красного прямоугольника. Но все еще нет редактируемого поля ввода текста. Я попытался установить ti.editable = true, но безрезультатно.

Ответы [ 4 ]

1 голос
/ 21 декабря 2011

Попробуйте это:

Создание нового FLA во Flash Professional. Добавьте компонент TextInput в вашу библиотеку. Обратите внимание, что в библиотеку добавляется не только класс TextInput, но и папка «Компонентные активы» - скины и тому подобное. Компоненты Flash Professional - это не просто код, это код и графика.

Если вы хотите использовать fl.controls.TextInput во Flash Builder, вы можете опубликовать тот FLA, который вы только что создали, с опцией «export swc». Включите этот SWC в проект Flash Builder, и вы сможете создать экземпляр TextInput в своем коде. Если вы хотите добавить другие компоненты Flash, добавьте их в библиотеку FLA и повторно опубликуйте swc.

1 голос
/ 19 декабря 2011

Я бы предпочел использовать сам Flex, это ускорит ваше развитие. Это просто и делает много работы для вас.

Если вы не хотите этого делать, вы должны дать вашему тексту некоторые свойства, такие как width, height, textFormat или использовать документ CSS для текстового формата. Вы также можете задать свой текст рамкой (это должно быть свойством TextInput).

Не забудьте установить формат текста, иначе TextField не знает, какой шрифт использовать.

Образец для TextInput (внизу страницы)

http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3/fl/controls/TextInput.html

Образец для Flex

http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3/spark/components/RichEditableText.html

1 голос
/ 20 декабря 2011

Вы можете попробовать этот код:

private var ti:TextField = new TextField();

public function FormText(){
    //adds ti possibly underneath 'this': stage.addChild(ti);
    //adds ti on top of 'this':
    stage.addChildAt(ti,getChildIndex(this));

    // makes the TextField editable:
    ti.type = TextFieldType.INPUT;
}

Это должно не только убедиться, что TextField существует, когда создается экземпляр класса, но также поставить форму перед класс,

Но это также предполагает, что класс был добавлен на сцену;поэтому может быть лучше добавить его следующим образом:

private var ti:TextField = new TextField();

public function FormText(){
    addEventListener(Event.ADDED_TO_STAGE, addedHnd);
}

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

    //adds ti possibly underneath 'this': stage.addChild(ti);
    //adds ti on top of 'this':
    stage.addChildAt(ti,getChildIndex(this));

    // makes the TextField editable:
    ti.type = TextFieldType.INPUT;
}

Пожалуйста, просмотрите документы TextField тоже.

0 голосов
/ 17 декабря 2011

Почему вы добавляете свой контроль на сцену? Вы должны просто добавить его в свою форму. т.е. this.addChild(ti)

...