Utility Functions For DisplayObjects
/** * Wait a given number of frames then call a callback * @param numFrames Number of frames to wait before calling the callback * @param callback Function to call once the given number of frames have passed * @author Jackson Dunstan */ public static function wait(numFrames:uint, callback:Function): void { var obj:Shape = new Shape(); obj.addEventListener( Event.ENTER_FRAME, function(ev:Event): void { numFrames--; if (numFrames == 0) { obj.removeEventListener(Event.ENTER_FRAME, arguments.callee); callback(); } } ); } /** * Apply a scroll rect from (0,0) to (width,height) * @param dispObj Display object to apply on * @author Jackson Dunstan */ public static function applyNaturalScrollRect(dispObj:DisplayObject): void { dispObj.scrollRect = new Rectangle(0, 0, dispObj.width, dispObj.height); } /** * Create a shape that is a simple solid color-filled rectangle * @param width Width of the rectangle * @param height Height of the rectangle * @param color Color of the rectangle * @param alpha Alpha of the rectangle * @return The created shape * @author Jackson Dunstan */ public static function createRectangleShape(width:uint, height:uint, color:uint, alpha:Number): Shape { var rect:Shape = new Shape(); var g:Graphics = rect.graphics; g.beginFill(color, alpha); g.drawRect(0, 0, width, height); g.endFill(); return rect; } /** * Remove all children from a container and leave the bottom few * @param container Container to remove from * @param leave (optional) Number of bottom children to leave * @author Jackson Dunstan */ public static function removeAllChildren(container:DisplayObjectContainer, leave:int = 0): void { while (container.numChildren > leave) { container.removeChildAt(leave); } } /** * Instantiate a new instance of a certain class of display object * @param obj Display object whose class a new display object should be * instantiated of * @param args Arguments to pass to the display object's constructor * @return A new instance of the given display object's class * @author Jackson Dunstan */ public static function instantiate(obj:DisplayObject, args:Array): DisplayObject { var c:Class = ObjectUtils.getDisplayObjectClass(obj); return c == null ? null : DisplayObject(FunctionUtils.instantiate(c, args)); } /** * Check if a display object is visible. This checks all of its * parents' visibilities. * @param obj Display object to check * @author Jackson Dunstan */ public static function isVisible(obj:DisplayObject): Boolean { for (var cur:DisplayObject = obj; cur != null; cur = cur.parent) { if (!cur.visible) { return false; } } return true; } /** * Get the children of a container as an array * @param container Container to get the children of * @return The children of the given container as an array * @author Jackson Dunstan */ public static function getChildren(container:DisplayObjectContainer): Array { var ret:Array = []; var numChildren:int = container.numChildren; for (var i:int = 0; i < numChildren; ++i) { ret.push(container.getChildAt(i)); } return ret; } /** * Get the parents of a display object as an array * @param obj Object whose parents should be retrieved * @param includeSelf If obj should be included in the returned array * @param stopAt Display object to stop getting parents at. Passing * null indicates that all parents should be included. * @return An array of the parents of the given display object. This * includes all parents unless stopAt is non-null. If stopAt is * non-null, it and its parents will not be included in the * returned array. * @author Jackson Dunstan */ public static function getParents(obj:DisplayObject, includeSelf:Boolean=true, stopAt:DisplayObject=null): Array { var ret:Array = []; for (var cur:DisplayObject = includeSelf ? obj : obj.parent; cur != stopAt && cur != null; cur = cur.parent ) { ret.push(cur); } return ret; }
作者:ywxgod
E-mail:给我发邮件
出处:http://ywxgod.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
E-mail:给我发邮件
出处:http://ywxgod.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。