hello resourceful forum,
im facing an issue and i dont know what to do. i have a class that extends movieclip (i called it container in the attached files). in that movieclip, i have many frames, each frame containing a different movieclip with its own quantity of frames.
what i plan is to loop thru the quantity of frames of the container class and then add an instance of container on stage per frame (its based on the principle of tiling). then, each instance would display a different frame.
the issue is that i can only target the movieclip on container’s stage during the first frame, then i get a null reference.
what should i look into?
Main class:
package {
// imports
import flash.display.MovieClip;
// class definition
public class Main extends MovieClip {
// variables
var _containerMovieClipsNames :Array;
var _containerContentFrames :Array;
// constructor
public function Main () {
_containerMovieClipsNames = ["MovieClipA", "MovieClipB"]
_containerContentFrames = ["A3", "B2"];
var container:Container;
var containerX:int = 32;
var containerY:int = 32;
for (var i:int = 0; i < _containerContentFrames.length; i++) {
container = new Container ();
container.x = containerX;
container.y = containerY;
container.gotoAndStop (i + 1);
/*
container.getMovieClipOnStageByName (_containerMovieClipsNames*);
container.getMovieClipOnStageByIndex (i);
container.setMovieClipFrame (_containerContentFrames*);
trace (container);
trace (container.x);
trace (container.y);
trace (container.getChildAt (0));
*/
addChild (container);
containerX += 64;
}
}
}
}
Container Class:
package {
// imports
import flash.display.MovieClip;
// class definition
public class Container extends MovieClip {
// variables
var _movieClip:MovieClip;
// constructor
public function Container () {
stop ();
}
// events
// functions
public function getMovieClipOnStageByName (movieClipName:String):void {
trace ("--- getMovieClipOnStageByName ---");
trace ("movieClipName: " + movieClipName);
_movieClip = MovieClip (getChildByName (movieClipName));
trace ("_movieClip: " + _movieClip);
trace ("_movieClip.totalFrames: " + _movieClip.totalFrames);
//_movieClip.stop ();
}
public function getMovieClipOnStageByIndex (movieClipIndex:int):void {
trace ("--- getMovieClipOnStageByIndex ---");
trace ("movieClipIndex: " + movieClipIndex);
_movieClip = MovieClip (getChildAt (movieClipIndex));
trace ("_movieClip: " + _movieClip);
trace ("_movieClip.totalFrames: " + _movieClip.totalFrames);
//_movieClip.stop ();
}
public function setMovieClipFrame (frameName:String):void {
trace ("--- setMovieClipFrame ---");
trace ("frameName: " + frameName);
//trace ("_movieClip.currentFrame: " + _movieClip.currentFrame);
//_movieClip.gotoAndStop (frameName);
//trace ("_movieClip.currentFrame: " + _movieClip.currentFrame);
}
}
}