2014-07-28 4 views
0

Я создаю приложение AIR с AS3, Citrus Engine и Starling. Вот два разных понятия создания TextField:Использование классов Starling и CitrusEngine с AIR

/* 
Using native AS3 component. 
import flash.text.TextField; 
*/ 
var meaningTitle = new TextField(); 
meaningTitle.text = 'Meaning'; 
addChild(meaningTitle); 

/* 
Using Starling framework. 
import starling.text.TextField; 
*/ 
var meaningTitle = new TextField(0, 0, 'Meaning'); 
addChild(meaningTitle); 

Используя рамки Старлинг я не могу добиться форматирования текста и другие интересные особенности AS3 TextField. Если бы я создать TextField с нативной компонентом AS3, а затем добавить его на сцену, я получаю эту ошибку:

Type Coercion failed: cannot convert flash.text::[email protected] to starling.display.DisplayObject. 

Я нашел одно решение, он говорит, что я должен использовать это:

... as DisplayObject 

Но это решение тоже не работает. Пожалуйста, помогите мне. Все, что я хочу, это форматирование TextField.

ответ

1

Starling или любые рамки на основе Stage3D несовместимы с классическим Flash DisplayObject. Вот почему addChild() терпит неудачу и по мере того как DisplayObject терпит неудачу, так как они не являются одним и тем же типом объекта. Старлинг делает его хуже для новичков, давая одинаковые имена классов соответствующему объекту. Итак, во-первых, не чувствуйте себя плохо, десятки новичков попали в одно и то же ловушку перед тем, как использовать Starling.

Теперь, к вашей проблеме, используйте классический TextField, отформатируйте его так, как вы хотите, затем нарисуйте его в BitmapData и передайте это Starling в Starling Image (используя Texture.fromBitmapData()). Starling TextField доступен для удобства только потому, что он используется только для самых простых целей.

Более продвинутый TextField можно найти с помощью рамки Feather (например, компонентная структура Starling).

Наконец-то небольшой совет, так как вы новичок, не пользуйтесь цитрусом, вы, вероятно, делаете, потому что думаете, что это то, что делают все, но это было бы ошибкой. Citrus - очень слабая типизированная структура, которая часто затрудняет начинающему начинанию. Многие профессионалы также не могут работать с ним, так как в основном это слабые типы. Это очень завышенная структура.