ScrollText 是定位在需要显示多行大量文本时使用。
但研究源码发现,ScrollText 的显示和处理是按以下步骤实现:
1、ScrollText 借助和管理 feathers.controls.supportClasses.TextFieldViewPort 来显示文本内容到舞台
2、深入 TextFieldViewPort 也能发现,其显示文本是依赖 flash.text.TextField
3、最令人无语的是,TextFieldViewPort 显示 TextField 居然是依赖一个 flash.display.Sprite,而这个 Sprite 被显示在
private function addedToStageHandler(event:Event):void
{
Starling.current.nativeStage.addChild(this._textFieldContainer);
}
private function removedFromStageHandler(event:Event):void
{
Starling.current.nativeStage.removeChild(this._textFieldContainer);
}
这无疑意味着,你使用 ScrollText 就代表你在同时使用原生的 flash 和 Starling 两种显示列表,这必将带来效率的降低。
最麻烦的弊端就是,ScrollText 的内容是被显示到最顶层的 flash.display.Stage 中,这样会造成显示列表和混乱和显示对象层管理的复杂度及难度。
总结:个人认为 ScrollText 并没有像官方所声称的那样优秀和可观,有时间还是得自己再找找其它办法重新实现文本域组件。