AS3 Flash从影片剪辑中的动画片段中调用主时间轴

Neb*_*ula 2 navigation timeline actionscript-3

我在这个网站上看过类似的问题而无法找到解决方案,所以这是我的问题:

我有一个保存功能,可以保存一些数据.这个功能在另一个影片剪辑的1个影片剪辑中.保存后我想要主时间线的gotoAndStop(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??
}
Run Code Online (Sandbox Code Playgroud)

这是AS3.在AS2中,我曾经能够调用_root.或_parent.这将工作正常,但现在它抛出编译器错误.Stage.gotoAndStop(1); 也没工作......

感谢任何帮助,在此先感谢Luben

Mar*_*rty 5

您可以访问最顶层的DisplayObject使用root.因为DisplayObject没有gotoAndStop()方法,尝试root.gotoAndStop()将导致:

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

但是,您可以将类型转换 rootMovieClip1,这将授予对它的访问权限:

MovieClip(root).gotoAndStop(1); // or:
(root as MovieClip).gotoAndStop(1);
Run Code Online (Sandbox Code Playgroud)

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


1除非您有一个继承的文档类Sprite而不是MovieClip.