0

这个主题几乎解释了这一切。我从一个包含整个舞台的位图的 MovieClip 的第一帧开始。

然后,当用户单击一个按钮时,它会转到第二帧,并且舞台上会出现一个矢量形状,覆盖图像的一部分。同时,通过代码,我在舞台上放置了一个输入Textfield。

问题是,动态创建的文本字段出现在矢量形状(在舞台上绘制)下!这似乎是 ActionScript 3 的新问题,因为我在 Flash CS3 和 ActionScript 2 中没有这个问题。

我尝试将文本字段放在不同的图层上,但无济于事。如何让文本字段出现在矢量形状上?

4

4 回答 4

0

将矢量形状放入影片剪辑中。然后调用:

setChildIndex(myTextField, numChildren - 1);
于 2008-11-21T10:03:42.707 回答
0

我已经试过了。像这样古怪的东西让我无法将我的框架迁移到 AS 3。

我已经确定问题出在 Flash 渲染舞台上的内容的方式上。当调用some_mc.play();将新对象引入舞台时——同时以编程方式将其他对象放置在舞台上——手动放置在舞台上的对象将始终直接呈现在任何以编程方式创建的对象之上。这可能不是每个人的经历,但这就是我所看到的。

我的解决方案:调用some_mc.play();,等待 10 毫秒,然后将其他对象放在舞台上。

于 2008-11-21T19:00:13.607 回答
0

您可以尝试通过代码添加矢量形状,然后添加文本字段。

var vectorShape:Sprite = new Sprite();  
addChild(vectorShape);

var textField:TextField = new textField();  
addChild(textField);

这会将矢量形状放在文本字段下方。

于 2008-11-28T22:46:21.607 回答
0

It sounds like your trouble arises because the design-time vector and the runtime text field come into existence in the same frame, so it's a timing issue where they appear and when you can move them.

The easiest thing might be to avoid this problem. One way would be to create an empty movie clip (on the stage, at design time) to be a holder for the text field, layer it wherever you want, and create the text inside of it at runtime. Another solution would be to create either the vector or the text field (or both) in frame 1, but keep it/them invisible until necessary.

于 2008-12-08T02:53:34.097 回答