我正在使用AS3,Citrus Engine和Starling创建空气应用程序。以下是创建文本域的两个不同概念:

/* 
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组件创建TextField,然后将其添加到I获取此错误的场景:

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

我找到了一个解决方案,它说我必须使用这个:

... as DisplayObject
.

但是这个解决方案也不起作用。请帮我。我想要的只是Textfield格式。

有帮助吗?

解决方案

椋鸟或任何基于STAP3D的框架与经典闪光显示器object不兼容。这就是为什么AddChild()失败,因为它们也不是相同类型的对象,因此SillowObject也失败。椋鸟通过向对应对象提供完全相同的类名来使初学者更糟糕。所以首先,在使用椋鸟之前,几十名初学者在同名陷阱中倒下了。

现在到您的问题,使用经典文本字段,格式化您想要的方式,然后将其绘制到BitMapData并将其传递给Starling Image(使用Texture.FrombitMapData())。 STARLING TextField仅在方便的时候,因为它只是非常基本的用途。

更高级的文本域可以找到羽毛框架(基于Starling的组件框架)。

终于有点建议,因为你是一个初学者,不要使用柑橘,你可能会这样做,因为你认为这是每个人都在做什么,但这将是一个错误。 Citrus是一个非常弱的类型框架,通常会使初学者更加难以完成任何事情。许多专业人士也无法与之合作,因为它大部分都是弱点。它是一个非常高估的框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top