Is it possible to add a child to the current frame only?
开发者_JAVA技巧I know you can just remove/hide them, and generate/show them again.
But isn't there an easier way?
Old school way:
If you have a timeline you can add a MovieClip as a holder only on that frame. The holder clip only exists on that frame. Once you reach that frame you add the real clip to the holder display list using code:
holder.addChild(new special_clip())
That way it will be removed when you change to another frame. It will however need to be re-created the next time you get to the frame.
package
{
import flash.display.MovieClip;
public class MyChild extends MovieClip
{
// Values
private var _containingFrame:int = 1;
/**
* ...
* @param e Event.ENTER_FRAME
*/
private function _check(e:Event):void
{
if(parent)
{
if(parent.currentFrame != containingFrame)
{
removeEventListener(Event.ENTER_FRAME, _check);
parent.removeChild(this);
}
}
}
/**
* Getters & Setters
*/
public function get containingFrame():int{ return _containingFrame; }
public function set containingFrame(n:int):void
{
_containingFrame = n;
addEventListener(Event.ENTER_FRAME, _check);
}
}
}
Just make this the base class of your children. Now when you add children (either via ActionScript or dragging onto the stage and assigning an instance name) you can just go:
myChild.containingFrame = currentFrame;
I'm not confident that there's a simpler way.
精彩评论