转自:http://www.lite3.cn/?p=351
如果一个MovieClip goto到非当前帧,那么直接获取在那一桢的非Shape显示对象是获取不到的,
但是currentFrame会立即跟进到 指定帧, 但指定帧还未渲染完成, 所以非Shape获取不到的
Shape元件简单很快就渲染完成了, SimpleButton, MovieClip 却需要更多的时间
废话不多说了,上代码, 注释比较详细 :razz: package
{
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
/**
* ...
* @author lite3
*/
public class MCgetChildTest extends Sprite
{
private const url:String = "http://www.lite3.cn/assets/swf/mc_getchild_test.swf";
private var loader:Loader = new Loader();
public function MCgetChildTest()
{
loader.load(new URLRequest(url));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler)
}
private function completeHandler(e:Event):void
{
loader.removeEventListener(Event.COMPLETE, completeHandler);
trace("------------- 主时间轴 -----------------");
// 获取当前时间轴里mc是子对象
var mc:MovieClip = (loader.content as DisplayObjectContainer).getChildAt(0) as MovieClip;
trace("第一个显示对象:", mc);
trace("跳转到第3帧!");
mc.gotoAndStop(3);
// 如果是MovieClip就是null, shape就有shape实例
trace("马上测试子对象个数:", mc.numChildren, ",第1个显示对象:", mc.getChildAt(0));// 1 null
trace("添加EnterFrame侦听!")
// 这里要添加enterFrame侦听, 否
mc.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(e:Event):void
{
var mc:MovieClip = e.target as MovieClip;
//mc.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
// 刚load进来的,第一次也是null
// 不是刚load进来的第一次就可以取到了
trace("子对象个数:", mc.numChildren, "/第一个子对象:", mc.getChildAt(0));
trace(mc.numChildren, mc.getChildAt(0));
}
}
}
复制代码这里是加载的我预先做好的swf, 主时间轴一个MC, 里面有4帧,分别为
1:一个Shape元件 (可以直接获取)
2:一个SimpleButton元件 (不能直接获取)
3:一个MovieClip元件 (不能直接获取)
4:一个绘制图形 (可以直接获取)
分享到:
相关推荐
actionscript3 FLEX显示MovieClip, sprite, 文字等demo源代码.zip
这是一个外国人写的类,可以将AVM1影片转换为MovieClip来操作。
flash的MovieClip.as,用于影片属性控制。
博文链接:https://mzlilei.iteye.com/blog/173943
MovieClip做背景放大拖动问题
pixi-movieclip-speed 根据当前浏览器的fps速率动态调整PIXI movieclip的动画速度。 当PIXI movieclip动画速度设置在0到1之间时,假定您的浏览器始终以60fps运行。 想象一下,精灵表格动画以24fps导出并且动画速度...
一个简单的案例,内容是通过按钮来控制元件的属性。
在As3中将AS2中的深度改成了标签,一直没闹明白怎么使用,一般都是直接addChild把mc放到最上面 今天做的这个因为本身在mc中,所以addChild会吧mc再添加一次,造成mc重复 研究了很久,发现了这个,并非原创,欢迎大家...
动态创建影片剪辑影片剪辑是 Flash 应用程序中可以播放动画的元件。它们是唯一引用图形元素的数据类型。MovieClip 数据类型允许我们使用 MovieClip 类的方法控制影片剪辑元件。
您可以在时间轴上定义该函数,也可以在扩展 MovieClip 类或链接到库中的元件的类文件中定义该函数。 一旦满足阻止 Flash Player 调用已定义函数的条件,将 onEnterFrame 事件处理函数的值设置为 null。 可用性:...
您可以在时间轴上定义该函数,也可以在扩展 MovieClip 类或链接到库中的元件的类文件中定义该函数。 一旦满足阻止 Flash Player 调用已定义函数的条件,将 onEnterFrame 事件处理函数的值设置为 null。 可用性:...
舞台上的 MovieClip 或 Button 元件的元件名称被设置为属性名称。 对于放置在舞台上的 MovieClip 和 Button 元件,将属性名称设置为与库中设置的元件名称相同的名称。 忽略不显示或岩石层。 隐藏/锁定层被忽略。 ...
//新增加一个事件,100秒后一起移除. BC.addEvent(this, this.dispatchSprite, egret.Event.ENTER_FRAME, DelegateUtil.create(this, this.onEnterFrame, "新来的!")); setTimeout(() => { //移除所有该类的...
白鹭egret图集分割工具。支持拆分两种图集资源:Egret MovieClip、Sprite Sheet。支持文件夹批量操作。支持分割后生成的文件夹创建到图片对应的目录,自己写的,亲测可用
getBytesLoaded LoadVars.getBytesLoaded()、MovieClip.getBytesLoaded()、 Sound.getBytesLoaded()、XML.getBytesLoaded() getBytesTotal LoadVars.getBytesTotal()、MovieClip.getBytesTotal()、Sound....
这是一个小程序,用来学习AS3.0,里面包括元件交互,基本数据,面向对象,简单数据结构,以及movieclip, sprite,和一些组件的应用,用它可以辅助学习AS3.0,也是我实验课上的一个作业.我的代码都很简单明了,一下子就难看懂,...
NULL 博文链接:https://fykyx521.iteye.com/blog/403179