如何将Spark TextArea组件显示为MovieClip的子项

时间:2012-07-05 03:41:07

标签: actionscript-3 flash flex textarea movieclip

我需要在我的应用程序中使用TextArea,因为它支持TLF框架并允许用户对文本进行编辑。

我的问题是这个TextArea必须是MovieClip的子节点,但我不能使它工作,并且不显示TextArea。

以下是我的代码示例:

var mc:UIMovieClip = new UIMovieClip();
mc.graphics.clear();
mc.graphics.lineStyle(2, 0, 1);
mc.graphics.drawRect(0, 0, 400, 300);
mc.width = 400;
mc.height = 300;

var textArea:TextArea = new TextArea();
textArea.width = 350;
textArea.height = 250;
textArea.text = "Hello world!";
mc.addChild(textArea);
myCanvas.rawChildren.addChild(mc);

当我直接将TextArea作为画布的子项添加时,TextArea组件正确显示,即当我替换行时

mc.addChild(textArea);

以下

mainCanvas.addChild(mc);

TextArea需要成为MovieClip的子级的原因是我正在使用一个使用MovieClip的外部库。 如果我使用UIMovieClip而不是MovieClip,这个技巧就不起作用。

有人可以解释为什么在这种情况下不会显示TextArea吗? 是否有任何解决方法可以获得所需的结果? (我尝试使用UIComponent作为中间子项而没有成功)

1 个答案:

答案 0 :(得分:0)

如果您使用的MovieClip是从Flash编译的,我们最近使用的一个很好的解决方案是将其实际导出为Flex友好容器: http://www.webkitchen.be/2009/02/11/video-tutorial-create-flex-container-components-with-flash-cs4/

如果没有,请尝试扩展ContainerMovieClip而不是UIMovieClip,并设置其content属性。