質問

AS3、Citrusエンジン、ムクドリでエアアプリケーションを作成しています。TextFieldを作成する2つの異なる概念があります。

/* 
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);
.

Starlingフレームワークを使用することで、AS3 TextFieldのテキストのフォーマットやその他のクール機能を実現できません。AS3コンポーネントのネイティブでテキストフィールドを作成してから、シーンに追加すると、このエラーが発生します。

Type Coercion failed: cannot convert flash.text::TextField@37aada9 to starling.display.DisplayObject.
.

私は1つの解決策を見つけました、それはこれを使わなければならないと言います:

... as DisplayObject
.

しかし、この解決策も機能しません。私を助けてください。私が欲しいのはテキストフィールドの書式設定です。

役に立ちましたか?

解決

StarlingまたはStage3Dベースのフレームワークは、古典的なFlash DisplayObjectと互換性がありません。そのため、AddChild()は失敗し、同じ種類のオブジェクトではないために障害が発生したので、そのままになります。 Starlingは、対応するオブジェクトにまったく同じクラス名を与えることによって初心者にとって悪化します。だから、最初に気分が悪くなってはいけません、初心者はスターリングを使用するときに同じ名前のトラップに陥っています。

あなたの問題に今、クラシックテキストフィールドを使用して、それをあなたがそれを使用して、それをビットマップデータに描画し、それをスターリングイメージでムラリングに渡します(texture.frombitmapdata())。スターリングテキストフィールドは、非常に基本的な用途のみのためだけの便宜のためにそこにあります。

さらに高度なテキストフィールドは、Feather Framework(Starlingベースのコンポーネントフレームワーク)で見つけることができます。

最後にあなたが初心者だからの少しアドバイス、柑橘類を使わないでください、あなたはそれがすべての人だと思うがそれが間違いだと思うのでおそらくあなたはおそらくそうする。 Citrusは非常に弱いタイプされたフレームワークで、初心者が何も成し遂げるのが難しくなります。多くのプロはまたそれがほとんどの面倒では弱いタイプされているので、それはそれを使うことはできません。それは非常に過度に過電化されたフレームワークです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top