好多人也应该遇到和我一样的问题,当设计师给了我们一个多层嵌套的movieClip时,我们在写代码时无法将movieClip完全停止掉,主要是基于好多movieClip有深层嵌套,主时间轴不在最上层导致的,所以基于这个原因写了下面的类。



看代码:(有很详细的注释)

  1. package com.sina.utils
  2. {
  3. import flash.display.MovieClip;
  4. public class MovieClipManage
  5. {
  6. private var_target:MovieClip;
  7. private var_type:String;
  8. public functionMovieClipManage(mc:MovieClip = null)
  9. {
  10. _target =mc;
  11. }
  12. private functiongoto(mc:MovieClip, frame:int = 0):void
  13. {
  14. if(!(mc isMovieClip))
  15. {
  16. throw new Error("MovieClipManage:::目标不是movieClip");
  17. return;
  18. }
  19. frame >0 ?  mc[_type](frame):  mc[_type]();
  20. if(mc.numChildren > 0)
  21. {
  22. for (var i:int = 0; i < mc.numChildren; i++)
  23. {
  24. if (mc.getChildAt(i) asMovieClip)
  25. {
  26. goto(mc.getChildAt(i) as MovieClip, frame);
  27. }
  28. }
  29. }
  30. }
  31. //--------------------API---------------------------------
  32. public functionpause(target:MovieClip = null):void
  33. {
  34. _type ="stop";
  35. target =target || _target;
  36. goto(target);
  37. }
  38. public functionplay(target:MovieClip = null):void
  39. {
  40. _type ="play";
  41. target =target || _target;
  42. goto(target);
  43. }
  44. public functionstop(target:MovieClip = null):void
  45. {
  46. _type ="gotoAndStop";
  47. target =target || _target;
  48. goto(target, 1);
  49. }
  50. public functionreplay(target:MovieClip = null):void
  51. {
  52. _type ="gotoAndPlay";
  53. target =target || _target;
  54. goto(target, 1);
  55. }
  56. }
  57. }

复制代码

//---------------------------------------------------------------------



实现原理:主要用到了递归的原理来循环找到底层的movieClip原件,然后执行相应的操作来达到将所有嵌套的原件暂停,重播等功能。

原文地址:http://www.99ria.com/blog/?p=230

【转】一个工具类(可以控制多层嵌套的movieClip)的更多相关文章

  1. java中使用反射做一个工具类,来为指定类中的成员变量进行赋值操作,使用与多个类对象的成员变量的赋值。

    //------------------------------------------------我是代码的分割线 // 首选是一个工具类,在该工具类里面,定义了一个方法,public void s ...

  2. 通过一个工具类更深入理解动态代理和Threadlocal

    动态代理和Threadlocal 一个代理类返回指定的接口,将方法调用指定的调用处理程序的代理类的实例.返回的是一个代理类,由指定的类装载器的定义和实现指定接口指定代理实例调用处理程序最近用到一个工具 ...

  3. 用Java开发一个工具类,提供似于js中eval函数功能的eval方法

    今天在看到<Java疯狂讲义>中一个章节习题: 开发一个工具类,该工具类提供一个eval()方法,实现JavaScript中eval()函数的功能--可以动态运行一行或多行程序代码.例如: ...

  4. JDBC的增删改写成一个方法,调用一个工具类

    package com.hx.jdbc.connection; import java.sql.Connection; import java.sql.Statement; import com.my ...

  5. 将Bean转换为Json形式的一个工具类

    这边遇到一个问题:  1.做一个bean类,实现一个函数,能够把bean生成json字符串.按字段作为key,字段值作为value的方式生成,并且按key的ascii码的升序生成.     2.提示: ...

  6. Swift - 简单封装一个工具类模板

    创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...

  7. 2018.12.1 web项目中解决乱码问题的一个工具类

    <!-- 配置一个过滤器 编码格式的过滤器 --> <filter> <filter-name>encodeFilter</filter-name> & ...

  8. 用mapreduce实现从hbase导出到hdfs,实现一个工具类,能够支持任意表 任意列 任意路径导出,并且支持表头

    分析: 1.由于是任意列 任意表 任意路径,我们很容易想到是参数传入,参数传入后怎么去获得参数,根据我们以往的经验就是通过args[]来获取,但是在mapper或者是reducer中,我们不能直接将参 ...

  9. 将CRUD封装到一个工具类中

    package org.zln.hibernate.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; ...

随机推荐

  1. SharePoint 2016 配置应用程序商店

    最近碰到一个新的需求,就是要给SharePoint配置应用程序商店,挺有意思的,就简单的配置和记录了一下,分享给大家. 其实应用程序商店之前感觉很鸡肋,但是用起来还是不错的.不喜勿喷,呵呵. 首先需要 ...

  2. linux下安装Mysql 以及导入数据库

    1.下载mysql的rpm包,创建一个文件夹例如software来放置下面文件 可以通过wget下载具体的地址 (1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:My ...

  3. 配置NFS服务与tftp服务

    在VMware在安装ubuntu的图解 链接:http://pan.baidu.com/s/1jIofvYu 密码:da72 图解里已经解压安装了VMware Tools,接下来必须要安装的就是NFS ...

  4. erlang erl文件编译的三种脚本

    方案1:命令行 #!/bin/sh #file name: erl.sh #author: stars #time:2015.06.05 #eg: ./erl.sh hello.erl start 2 ...

  5. loadrunner11.0之IP欺骗

    一:设置虚拟ip地址 操作步骤: 1:添加ip地址 运行loadrunner---tools---IP wizard 2:选择create  new setting,点击"下一步" ...

  6. hibernate系列笔记(1)---Hibernate增删改查

    Hibernate增删改查 1.首先我们要知道什么是Hibernate Hibernate是一个轻量级的ORMapping对象.主要用来实现Java和数据库表之间的映射,除此之外还提供数据查询和数据获 ...

  7. 【数据标识】iOS App下载渠道的统计需求

    需求概述 我们现在有一个需求,某一个活动需要拉新所谓的拉新一般是推App下载,这个用户通过这个活动下载了App后,我们需要做到[在数据库中记录这个用户下载这个App是通过那个二维码渠道的,从效果上说, ...

  8. 第八讲:I/O虚拟化

    一.I/O虚拟化的产生 服务器单个千兆以太网端口肯定能够支持单个应用,但是当被分割为10个.15个或者更多的服务器负载时(这其中包括网络.存储以及服务器之间的流量)可能就不够用了. 当遇到I/O瓶颈时 ...

  9. Swift 包管理器命令行使用

    1.swift -version //swift 版本查看 2.swift build //swift工程编译 3.swift package generate-xcodeproj //创建Xcode ...

  10. maven lean install 的时候出错 Failed to clean project

    问题解决1 : 这种情况是属于  本地有多个  java  线程,关掉其中不用的,或者 都关闭就可以了. 问题解决 2 : Caused by: org.springframework.beans.f ...