插入Flash动画时的root 问题

技术分享 06-07-04 阅读:724 评论:0
root 问题

FLASH 中设置 _root,是为了方面大家直接定位底层(场景)对象或者函数,但这里会有一个问题,如果你单独做一个 FLASH,用 _root 是没有问题的,不过当这个 flash(设定为 A)被其他 flash(设定为 B)调用的时候,A 中的 _root 就不是指 A 本身了,而是 B 的底层。

这就是为什么很多用户,在单独播放 flash 的时候没有问题,但是合成杂志以后就出问题了。

解决方法有两种:

第一种比较简单就是在你制作的 flash 中的第一帧的第一行加上 this._lockroot = true;

这句语句是强制设置,这个 flash 的中用到的 _root,都是本身,不管是否被其他 flash 调用。但是缺点是如果真的要调用底层对象或者函数时也不行了,比如目录需要调用主杂志函数: _root.gotoPage();

刚刚查了一下 FLASH 帮助文件,发现里面也有说明,MACRO 公司是这么解释的,也贴给大家看看

public _lockroot : Boolean

一个布尔值,指定将 SWF 文件加载到影片剪辑中时 _root 引用的内容。默认情况下,_lockroot 属性为 undefined。您可以在正在被加载的 SWF 文件中或正在加载该影片剪辑的处理函数中设置此属性。

例如,假设您有一个名为 Games.fla 的文档,用于让用户选择要玩的游戏并将该游戏(例如 Chess.swf)加载到 game_mc 影片剪辑中。请确保,在加载到 Games.swf 中之后,在 Chess.swf 中对 _root 的任何使用都指向 Chess.swf 中的 _root(而非 Games.swf 中的 _root)。如果对 Chess.fla 具有访问权限并将其发布到 Flash Player 7 或更高版本,则可以将此语句添加到 Chess.fla 的主时间轴上:

this._lockroot = true;

第二种方法就是使用相对路径指定对象或者函数,第一个是 this,表示本身,第二个是 _parent 表示上级对象。比如目录页不能直接 lockroot,所以需要用相对路径来指定。

好了 _root 问题应该说清楚了,另外 flash 中的细节和技巧还有很多,我会在这里帖子中慢慢添加的,希望对大家有所帮助。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

上一篇:等待.... 下一篇:完整目录模板用法

网友评论

相关推荐