Timeline类 |
| 作者:佚名 来源:不详 更新:2007-1-13 20:40:35 错误报告 我要投稿 |
大家可能为了onEnterFrame事件或sound 的holder在bitmap上画图形 e.t.c创建mc吧 经常取奇怪的名字与深度,为了不冲突 这是一个为得到任意不显示的mc的类 名字与深度由自动控制,只需要一个位于动态层的空的mc即可 用法:
import fl.event.Timeline; Timeline.init(/*一个位于动态层的空的mc*/); var mc:MovieClip = Timeline.get(); //这个mc想怎么用,就怎么用 /* Do something…*/ mc.removeMovieClip(); //用完删除即可。 Class: import fl.util.Stack; import fl.error.TimelineNotInitError; import fl.error.ParamError; class fl.event.Timeline { static var parent:MovieClip; static var depth:Number; static var closeList; static var inited:Boolean = false; /** *初始化 *@see fl.util.Stack *@param mc: *@return void */ public static function init(mc:MovieClip):Void { parent = mc; parent.clear(); //parent._visible = false; depth = 0; inited = true; closeList = new Stack(); } /** *得到一个mc *@see fl.error.TimelineNotInit *@throw TimelineNotInit() *@return */ public static function get():MovieClip { if (!inited) { throw new TimelineNotInitError(); } var redepth:Number; try { redepth = Number(closeList.pop()); } catch (e) { redepth = depth++; } var result:MovieClip = parent.createEmptyMovieClip("p" + redepth, redepth); result.onUnload = function() { Timeline.del(this); }; return result; } /** *删除 *@see fl.error.Param *@throw Param("mc") *@param mc: *@return void */ public static function remove(mc:MovieClip):Void { if (mc._parent != parent) { throw new ParamError("mc"); } closeList.push(mc.getDepth()); mc.removeMovieClip(); } /** *清空 *@return void */ public static function clear():Void { for (var i in parent) { parent[i].removeMovieClip(); } depth = 0; closeList.init(); } static function del(mc:MovieClip):Void { closeList.push(mc.getDepth()); } private function Timeline() { } } timeline.zip
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |