我刚开始学习flash。无论如何,当我从菜单中退出游戏时,我有一个动画片段被删除,例如removeChild(character)
。当我在菜单上按“开始”时,我希望该角色重新出现。如果他被删除,我怎么能再次添加他?
答案 0 :(得分:2)
您可以再次使用addChild添加他。要测试是否添加/删除了它,您可以测试他的stage属性是否为真。
if (!character.stage)
{
addChild(character);
}
答案 1 :(得分:0)
也许您只想更改子项的可见性或暂时将其从布局中排除?
答案 2 :(得分:0)
检查字符的父属性以查看它是否附加到任何内容。但请注意,在已添加的显示对象上使用addChild是完全可以的。
答案 3 :(得分:0)
删除时将其保存在var
中var mySavedCharacter:MovieClip = characater
removeChild(character)
将其添加回来时,只需添加已保存的var
即可addChild(mySavedCharacter)
还要记住,对象是通过引用传递的,因此对字符的更改也会改变mySavedCharacter。
答案 4 :(得分:0)
首先需要确保引用要重新添加到舞台的MovieClip。如果要在函数中创建此MovieClip而不保存引用,则必须执行“脏”查找以获取引用。以下是如何创建引用供以后使用的示例:
var myMovieClip : MovieClip; // make sure you have this outside of a function
function createMyMovieClip() : void
{
myMovieClip = new MovieClip();
addMyMovieClip();
}
现在你有了对MovieClip的引用,你可以这样做:
function addMyMovieClip() : void
{
stage.addChild( myMovieClip );
}
function removeMyMovieClip : void
{
stage.removeChild( myMovieClip );
}
答案 5 :(得分:0)
if (!yourContainer.contains(character)) yourContainer.addChild(character);
此代码假定“yourContainer”是有效的DisplayObjectContainer引用,并且“character”是对DisplayObject的非null引用。
此外,请确保您保存对角色MovieClip / Sprite的引用,而不仅仅是添加到显示列表,以便它不是GC。