一个工具类(可以控制多层嵌套的movieClip)
2014-07-29 10:35
281 查看
好多人也应该遇到和我一样的问题,当设计师给了我们一个多层嵌套的movieClip时,我们在写代码时无法将movieClip完全停止掉,主要是基于好多movieClip有深层嵌套,主时间轴不在最上层导致的,所以基于这个原因写了下面的类。
看代码:(有很详细的注释)
package com.sina.utils
{
import flash.display.MovieClip;
public class MovieClipManage
{
private var_target:MovieClip;
private var_type:String;
public functionMovieClipManage(mc:MovieClip = null)
{
_target =mc;
}
private functiongoto(mc:MovieClip, frame:int = 0):void
{
if(!(mc isMovieClip))
{
throw new Error("MovieClipManage:::目标不是movieClip");
return;
}
frame >0 ? mc[_type](frame): mc[_type]();
if(mc.numChildren > 0)
{
for (var i:int = 0; i < mc.numChildren; i++)
{
if (mc.getChildAt(i) asMovieClip)
{
goto(mc.getChildAt(i) as MovieClip, frame);
}
}
}
}
//--------------------API---------------------------------
public functionpause(target:MovieClip = null):void
{
_type ="stop";
target =target || _target;
goto(target);
}
public functionplay(target:MovieClip = null):void
{
_type ="play";
target =target || _target;
goto(target);
}
public functionstop(target:MovieClip = null):void
{
_type ="gotoAndStop";
target =target || _target;
goto(target, 1);
}
public functionreplay(target:MovieClip = null):void
{
_type ="gotoAndPlay";
target =target || _target;
goto(target, 1);
}
}
}
复制代码
//---------------------------------------------------------------------
实现原理:主要用到了递归的原理来循环找到底层的movieClip原件,然后执行相应的操作来达到将所有嵌套的原件暂停,重播等功能。
原文地址:http://www.99ria.com/blog/?p=230
看代码:(有很详细的注释)
package com.sina.utils
{
import flash.display.MovieClip;
public class MovieClipManage
{
private var_target:MovieClip;
private var_type:String;
public functionMovieClipManage(mc:MovieClip = null)
{
_target =mc;
}
private functiongoto(mc:MovieClip, frame:int = 0):void
{
if(!(mc isMovieClip))
{
throw new Error("MovieClipManage:::目标不是movieClip");
return;
}
frame >0 ? mc[_type](frame): mc[_type]();
if(mc.numChildren > 0)
{
for (var i:int = 0; i < mc.numChildren; i++)
{
if (mc.getChildAt(i) asMovieClip)
{
goto(mc.getChildAt(i) as MovieClip, frame);
}
}
}
}
//--------------------API---------------------------------
public functionpause(target:MovieClip = null):void
{
_type ="stop";
target =target || _target;
goto(target);
}
public functionplay(target:MovieClip = null):void
{
_type ="play";
target =target || _target;
goto(target);
}
public functionstop(target:MovieClip = null):void
{
_type ="gotoAndStop";
target =target || _target;
goto(target, 1);
}
public functionreplay(target:MovieClip = null):void
{
_type ="gotoAndPlay";
target =target || _target;
goto(target, 1);
}
}
}
复制代码
//---------------------------------------------------------------------
实现原理:主要用到了递归的原理来循环找到底层的movieClip原件,然后执行相应的操作来达到将所有嵌套的原件暂停,重播等功能。
原文地址:http://www.99ria.com/blog/?p=230
相关文章推荐
- 可以控制多层嵌套的movieClip播放和暂停
- 一个solaris下可以使用的web log分析工具webalizer
- 母版页可以多层嵌套使用~
- 在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:
- 一个可以将flex应用运行于手机上的开发工具ELIPS_STUDIO
- 一个可以画、又可以导入/导出Java的UML工具
- 推荐一个小工具:ftree 可以列出ftp server的目录树
- 一个可以精确控制FPS的程序框架
- 用程序动态控制只有一个或少数几个字段可以改
- 一个代替linux的fetion的软件,用起来挺方便的,而已可以在控制下就能使用。
- windows进程限制工具,可以限制其它软件只能运行一个
- 一个可以解析嵌套IIF语句的代码
- 感悟啊,确实如此。技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但好不要一辈子靠它生存
- 介绍一个可以读取保存在程序集里面的图片资源的小工具
- 发布一个小工具(XNotePad),可以分页浏览很大的文本文件,速度理想
- 单片机控制继电器电路 程序就很简单了 做一个口的输出就可以了
- 一个可以找出源代码中所有中文的工具
- 网页嵌套一个image然后可以弹出qq的消息框。
- 今天发现一个好工具--putty,可以用来远程管理Linux9系统
- 自己写的一个记录日常事务的小软件,也可以作为密码保险箱和提醒工具