好多人也应该遇到和我一样的问题,当设计师给了我们一个多层嵌套的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. "ORA-01460: 转换请求无法实现或不合理"及C#操作Blob总结

    class BlobDemo { private static readonly string ConnectionString = "Data Source=Tcco;User ID=sc ...

  2. 实现 $.extend 的深复制和浅复制

    $.extend 是jquery常用的一个方法,该方法通过传第一个布尔型参数可以指定为深复制还是浅复制,如何使用不在本文讨论. 先来理解下什么是深复制: var ob1 = {'name' : 'Ja ...

  3. 一个想法照进现实-《IT连》创业项目:万事开头难

    前言: 之前是一个想法,现在已经进入创业阶段,所以这个系列的标题,改了. 众筹的事在今天也停止了. 7-9号会在深圳龙岗布吉参加一个风投对接的活动,今晚(6号)会出发. 因为:在深圳会呆几天,而且这个 ...

  4. 消除input,button之间的间距

    代码: 效果: 问题: input,button标签之间出现了间距,这并不是我们所期望的. 解决方法: 1.在父级元素上设置属性:font-size:0px; 将input父级字体(font-size ...

  5. li点击弹出序号

    <body> <ul> <li>test1</li> <li>test2</li> <li>test3</li ...

  6. Android--多线程之Handler 前言

    前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的 ...

  7. c语言二叉树的递归建立

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <malloc.h&g ...

  8. Bootstrap学习-环境安装

    1.<meta http-equiv="X-UA-Compatible" content="IE=edge"> 让IE运行最新的渲染模式. 2.&l ...

  9. Ajax基础与登入

    Ajax 是 Asynchronous JavaScript and XML的缩写. Ajax的优点: 优点:减轻服务器的负担,按需取数据,最大程度的减少冗余请求 局部刷新页面,减少用户心理和实际的等 ...

  10. Spring学习笔记①

    我觉得Spring之所以发展的好,主要是理论研究与实践是并轨的,能跟得上时代的步伐,尤其是基础理论的研究(可能是最近看三体看多了,对基础理论非常崇拜).微服务的实现啊,RESTful的实现,对应的Sp ...