AS3如何移除容器下所有子显示对象

flex实现的删除子容器 flex实现的如何删除子容器代码,对于实际开发是有很大帮助的 立即下载
容器中的子显示对象分为两类:
处于显示列表中的子显示对象。被numChildren所记录的。
由容器graphics对象绘制出来的矢量图。这个矢量图不属于Shape类型,不在容器的显示列表中,不被numChildren所记录。而是做为容器的背景矢量图存在,始终处于最后面。
因此,准确的说,如果要移除容器下所有子显示对象,就要分别移除这两类对象。

比如有一个容器,其下有8个sprite子对象,和一个graphics绘制出的图像:

var con:Sprite = new Sprite();
addChild(con);
for(var n:int =0; n<8; n++) {
 con.addChild(new Sprite());
}
con.graphics.beginFill(0xFF0000);
con.graphics.drawCircle(100,100,100);
con.graphics.endFill();
trace ("con's children:" + con.numChildren);
//输出:con's children:8   graphics对象绘制的图形果然不在其中。
先说,如何移除显示列表中的显示对象。
在AS3中,容器对子对象的深度管理是自动的,深度是连续的。
每移除指定深度的显示对象,那么其他子显示对象会移动并填充这个空位。因此,代码编写需要注意这一点。
容易误写的移除代码:

//以下是错误代码:
for(var i:int=0; i
 con.removeChildAt(i);
}
trace (con.numChildren); //输出:4

错误原因:每次删除1个子对象,后面的就填补上深度索引空缺,numChildren又会动态改变,因此出错。这样,实际只移除了四个显示对象,分别是0,2,4,6这四个索引的显示对象。因此,是错误的代码。
正确方式:

for(var i:int=con.numChildren-1; i>=0; i--) {
 con.removeChildAt(0);
}
或:
var len:uint = con.numChildren;
while(len>0) {
 con.removeChildAt(0);
 len--;
}

由于显示列表会自动移动显示对象填充空缺,所以只移除0索引的位置即可。这样效率最高。
到这儿,大家可能会发现,虽然numChildren已经为0,但是graphics绘制的圆形仍然存在。所以最后,应当调用一句下面的代码把它也清除掉,才算真正的移除了容器下所有的显示内容。

con.graphics.clear();
ROS入门(一)——ROS安装(vmware16+ubuntu20.04+ROS-Noetic) 嵌套:ROS可以在Ubuntu上运行,Ubuntu在虚拟机Vmware中安装。 从 虚拟机vmware安装→ubuntu安装→ros安装,逐步介绍安装ROS环境的过程。整个过程是我一步步跟着各种博客安装实现的,亲测可行。 版本: Vmware :Vmware Workstation16 Ubuntu :20.04 ROS :Noetic 其中vmware直接载当前最新版本就好,而ubuntu的版本要注意一下。 在ROS官网(cn - ROS Wiki),我们进入到ROS安装的步骤界面,可以看.. 阅读详情

相关推荐

Tlsr8258开发-程序烧写

开源一小步,进步一大步

自学嵌入式 1774

用AS3如何清空容器下所有子显示对象

 用AS3如何移除容器下所有子显示对象作者:kingda | 来源:http://www.kingda.org | 浏览次数:85 | 2007-8-11 17:57:31容器中的子显示对象分为两类:处于显示列表中的子显示对象。被numChildren所记录的。由容器graphics对象绘制出来的矢量图。这个矢量图不属于Shape类型,不在容器的显示列表中,不被numChildre

星之守护的专栏 3842

TBOX(Telematics Box)在智能网联汽车中的核心功能与应用场景解析

TBOX(Telematics Box)是智能网联汽车的“中枢神经”,基于Android或Linux操作系统,并通过CAN总线与车辆深度交互。它实现了远程控制、车辆状态监控、OTA升级及紧急呼叫(E-CALL)等核心功能,是提升用车安全、便利性与实现车辆持续进化的关键技术组件。

weixin_29158413的博客 804

AS3中读取子对象的四种方法

AS3中读取子对象的四种方法         这段日子在公司实习,学习新语言ActionScript3,遇到过这么一个问题,在容器中获取子对象,大部分的回答都是三种:getChildAt()、getChildByName()、 getObjectsUnderPoint()。但是有时候通过这三种方法很难get到想要的对象...

和产品battle的秃头程序 1387

python如何实现点云可视化交互——Open3D实例教程(获取所选点的信息)保姆级教学

python如何实现点云可视化交互——Open3D实例教程(获取所选点的信息)保姆级教学

qq_45912037的博客 1万+

Spring Boot 与 Redisson 版本适配深度解析

Spring Boot 与 Redisson 的版本适配是一个动态演进的过程。开发者需要密切关注两者官方的版本更新日志,建立完善的版本验证机制。本文提供的适配方案基于当前最新技术状态(2024年1月),建议在实际生产环境中通过灰度发布策略验证版本兼容性。只有深入理解底层技术原理,才能在分布式系统的星辰大海中稳健航行。延伸阅读Spring Boot 官方迁移指南。

fudaihb的博客 1082

as3教程

1、动态修改影片的帧频在AS3中,你可以使用Stage类动态的修改影片的帧频。Stage类 (flash.display.Stage)的stage对象是所有的sprite和MovieClip以及其他在安全沙箱里的所有元件的舞台。 stage对象的帧频可以是0.01到1000之间的任何一个数。要修改帧频,使用下面的代码:// 将帧频修改到12帧每秒(FPS) stage.frameR

阿衡·加油! 1764

基于simulink的智能驾驶领域--智能车道保持辅助系统仿真

LKAS通过摄像头等传感器检测车辆相对于车道线的位置,并自动调整转向,以帮助驾驶员保持在车道内行驶。将摄像头传感器模块的输出连接到车道线检测模块的输入端口,再将车道线检测模块的输出连接到转向控制器模块的输入端口,最后将转向控制器模块的输出连接到车辆动力学模型的转向输入端口,形成闭环控制系统。上升时间是指系统从初始转向角上升到目标转向角所需的时间,调节时间是指系统进入并保持在目标转向角一定范围内的所需时间。该控制器将根据摄像头传感器的数据调整车辆的转向角,以保持车辆在车道内行驶。

xiaoheshang_123的博客 162

每天学一点Flash(47) As3.0 删除容器所有子对象

  经过查询了资料发现了删除容器的所有子对象也有这样的学问啊。原来是关于深度的问题,每删除一个子对象,深度就会自动移动并填充这个空位。每个DisplayObjectContainer对象都有一个numChildren属性,numChildren记录了这个对象里子对象的个数,当容器对象里添加了一个子对象,位置为0,numChildren为1,添加第二个子对象时,位置为1,numChild

夏天的树人的专栏 8491

X-AnyLabeling-main标注YOLO关键点POSE

同一物体的框和点的 群组编号 要相同。代表这些点和方框是同一物体上的。标注方框之后记得把后面的。顺序要和你标注的顺序一致。写入1,而且之后的点的。配置导出文件.yaml。

qq_53545309的博客 2107

家用扫地机器人研发技术路线-第四部分:如何一步步做出来 | 4阶段 · 从原型到量产

摘要:本文详细介绍了扫地机器人从原型到量产的研发流程,分为4个关键阶段。首先聚焦四大技术难点:SLAM定位、AI视觉识别、仿生机械臂和静音风机系统。研发过程包括实验室原型验证、工程样机测试、小批量真实场景测试和量产导入四个阶段,每个阶段设有严格评审标准。特别强调测试贯穿全程,包括模块单元测试、整机集成测试、长期可靠性测试和多样化场景模拟,确保产品在上市前完成数百次真实环境验证。整个流程体现了从技术攻关到产品落地的系统性工程思维。

智能硬件研发,欢迎交流 191

AS3 遍历对象

as3遍历对象所有属性的方法 1: ObjectUtil.getClassInfo(this._arr[0]).properties as Array  2:var o:Object=new Object(); o.name='mm'; o.type='size'; o.size='32D'; for (var i:String in o) { trace(i); tr...

rasvs007的专栏 443

基于MATLAB开发AUTOSAR软件应用层模块-part3.自动生成的代码文件介绍

上篇文章我们介绍了如何设计一个简单的模型,之后自动生成autosar架构的代码,这篇文章我带大家看下,生成了哪些文件,以及这些文件的内容。 生成的文件见下图: model files是模型控制逻辑部分代码,包括 DEMO1.c DEMO1.h DEMO1_private.h DEMO1_types.h DEMO1.c 1 /* 2 * File: DEMO1.c 3 * 4 * Cod.

汽车软件开发 1977

在flex中如何移除所容器下所有子显示对象

<br />容器中的子显示对象分为两类:<br /><br />处于显示列表中的子显示对象。被numChildren所记录的。<br />由容器graphics对象绘制出来的矢量图。这个矢量图不属于Shape类型,不在容器的显示列表中,不被numChildren所记录。而是做为容器的背景矢量图存在,始终处于最后面。<br />因此,准确的说,如果要移除容器下所有子显示对象,就要分别移除这两类对象。 <br />比如有一个容器,其下有8个sprite子对象,和一个graphics绘制出的图像:<br /> v

tgh7934418715的专栏 1400

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

每天学一点Flash 47 As3 0 删除容器所有子对象

每天学一点Flash 47 As3 0 删除容器所有子对象

truhfcg的博客 483

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

用AS3清空容器下所有子显示对象

容器中的子显示对象分为两类: 处于显示列表中的子显示对象。被numChildren所记录的。 由容器graphics对象绘制出来的矢量图。这个矢量图不属于Shape类型,不在容器的显示列表中,不被numChildren所记录。而是做为容器的背景矢量图存在,始终处于最后面。 因此,准确的说,如果要移除容器下所有子显示对象,就要分别移除这两类对象。 比如有一个容器,其下有8个sprit...

weixin_30794491的博客 81

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【转】As3.0 删除容器所有子对象

经过查询了资料发现了删除容器的所有子对象也有这样的学问啊。原来是关于深度的问题,每删除一个子对象  ,深度就会自动移动并填充这个空位。  每个DisplayObjectContainer对象都有一个numChildren属性,numChildren记录了这个对象里子对象的个数,当  容器对象里添加了一个子对象,位置为0,numChildren为1,添加第二个子对象时,位置为1,n

Nobel2313的专栏 2008

As3.0 删除容器所有子对象

经过查询了资料发现了删除容器的所有子对象也有这样的学问啊。原来是关于深度的问题,每删除一个子对象 ,深度就会自动移动并填充这个空位。 每个DisplayObjectContainer对象都有一个numChildren属性,numChildren记录了这个对象里子对象的

起跑线的专栏 1141

每天学一点Flash(47) As3 0 删除容器所有子对象

每天学一点Flash(47) As3 0 删除容器所有子对象

cfhgcvb的博客 251

AS3.0 基础代码收集

AS3.0 控制时间轴上动作 1:addFrameScript()方法 //允许你指定在flash player播放头播放到指定的位置时触发事件. mc.addFrameScript(帧位置,调用函数); 2:鼠标的点击事件    btn.addEventListener(MouseEvent.鼠标事件,调用事件)    事件定义    function xxx(ev

waizi1976的专栏 4931

AS3容器:DisplayObjectContainer与Sprite、MovieClip

显示对象容器(DisplayObjectContainer)是显示对象的子类,可以在其内放置显示对象,当然也包括容器。 22.1 容器的概念和实现 容器有属于自己的子对象列表,既包括非容器显示对象也可以包括子容器对象。 在AS3中有6个重要的容器,包括DisplayObjectContainer的4个子类:Sprite、MovieClip、Loader和Stage 也包括Flex组件架构中

这样的你要多久 2297

Flex中改变对象在容器中的叠放层次

1、在容器中添加对象、移除对象和检测容器中是否存在对象 容器对象.addChild(显示对象);//在容器中添加对象 容器对象.removeChild(显示对象);//在容器中删除对象 容器对象.contains(显示对象);//检测容器中是否存在显示对象,如果存在返回true,不存在返回false. 2、在容器中添加对象,并设置对象的深度(就是在容器中存在的层次),在同一深度只...

ahc4173的博客 168

ActionScript 3.0 Cookbook 6.2 从显示列表中移除项目(翻译:转载请注明)

6.2 从显示列表中移除项目(翻译:转载请注明)问题:你要想从显示列表移除项目从而从屏幕中移除解决方案:使用DisplayObjectContainer 类的removeChild()和removeChildAt()方法讨论:6.1节中已经陈述了如何用addChild()和addChildAt()方法去在显示列表中增加显示对象达到相反的效果可以用removeChild()和removeChild(

913

AS3.0 中的 变量回收机制

简介 策略 Incremental Mark and Sweep 移除对象 移除事件 总结简介简单地来说,AS3.0 中的变量回收机制可以用一句话概括,当对象在程序中不能被访问到时,其就会被垃圾回收所标记,但不会被立即回收。当程序所占空间达到极限时,可回收的对象才会被回收。策略: Incremental Mark and Sweep我们并不能知道被标记为可回收的对象何时会被回收,最理想的状态时,当一

suzuiyue的专栏 902

AS3事件机制概述

事件机制是AS3的核心功能之一,没有充分掌握事件机制的方方面面,就不能算是精通AS3语言。 1. AS3事件机制的主要成员 IEventDispatcher:事件派发对象接口,定义了添加、派发、移除、是否监听指定事件、是否触发指定事件接口 EventDispatcher:事件派发对象接口的实现者,用户无法撇开EventDispatcher而自行实现IEventDispatcher接口,无

程序交流中心 1874
上一篇: 转一个超炫效果,as3制作的。
下一篇: 什么是RIA
wx红杉树
博客等级 码龄21年 383粉丝 296原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值