这个主题几乎解释了这一切。我从一个MovieClip的第一帧开始,只有一个覆盖整个舞台的位图。
然后,当用户点击按钮时,它会转到第2帧,并且矢量形状位于覆盖部分图像的舞台上。同时,通过代码,我在舞台上放置一个输入Textfield。
问题是,动态创建的Textfield出现在矢量形状(在舞台上绘制)下面!这似乎是ActionScript 3中的一个新问题,因为我没有使用Flash CS3和ActionScript 2这个问题。
我尝试将Textfield放在不同的图层上,但无济于事。如何让Textfield显示在矢量形状上?
答案 0 :(得分:0)
将矢量形状放在动画片段中。然后致电:
setChildIndex(myTextField, numChildren - 1);
答案 1 :(得分:0)
我已经尝试过了。像这样古怪的东西阻止我将我的框架迁移到AS 3。
我已经确定问题在某种程度上取决于Flash呈现舞台上的内容。当调用some_mc.play();
向舞台引入新对象时 - 同时以编程方式将其他对象放置在舞台上 - 手动放置在舞台上的对象将始终直接呈现在任何编程创建的对象之上。这可能不是每个人的经历,但这就是我所看到的。
我的解决方案:致电some_mc.play();
,等待10毫秒,然后将其他物品放在舞台上。
答案 2 :(得分:0)
您可以尝试通过代码添加矢量形状,然后添加文本字段。
var vectorShape:Sprite = new Sprite();
addChild(vectorShape);
var textField:TextField = new textField();
addChild(textField);
这会将矢量形状放在文本字段下方。
答案 3 :(得分:0)
听起来你的麻烦是因为设计时矢量和运行时文本字段在同一帧中出现,所以它们出现的时间问题以及何时可以移动它们。
最简单的方法可能是避免这个问题。一种方法是创建一个空的影片剪辑(在舞台上,在设计时)作为文本字段的持有者,将其分层到任何你想要的地方,并在运行时在其中创建文本。另一种解决方案是在第1帧中创建向量或文本字段(或两者),但在必要时保持它/它们不可见。