我在这个网站上浏览了类似的问题,找不到解决方案,所以这是我的问题:

我有一个保存功能,可以保存一些数据。此功能在另一个影片剪辑的一个影片剪辑中。保存后,我想转到主时间轴的totoAndStop(1),而不是当前嵌套的那个...有人可以帮忙吗?

下面是代码:

function save()
{

    var oldname:String = so.data.username;
    so.data.username = oldname + tf.text + " " + nf.text + "\n";
    tf.text = "";
    nf.text = ""; // resets textfields
    so.flush(); // writes changes to disk
    trace("Saved");
    gotoAndStop(1);  <<----this must goto frame 1 of the main time line??
}


这是AS3。在AS2中,我曾经能够调用_root。或_parent。它将正常工作,但现在会引发编译器错误。 Stage.gotoAndStop(1);也行不通...

感谢任何帮助,
提前致谢
鲁本

最佳答案

您可以使用DisplayObject访问最上面的root。由于DisplayObject没有gotoAndStop()方法,因此尝试root.gotoAndStop()将导致:


1061:通过静态类型为flash.display:DisplayObject的引用调用可能未定义的方法gotoAndStop。


但是,您可以typecast rootMovieClip 1,这将授予对该文件的访问权限:

MovieClip(root).gotoAndStop(1); // or:
(root as MovieClip).gotoAndStop(1);


类型转换为MovieClip还将允许您在主时间轴上访问用户定义的属性和函数-这是因为MovieClips是dynamic,这会降低编译时对允许访问对象的属性和方法的约束。



1除非您的文档类继承了Sprite而不是MovieClip

关于actionscript-3 - 从影片剪辑内的影片剪辑内,AS3 Flash调用主时间轴,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7074417/

10-10 02:59