Adobe Extending Flash Professional CS4 User Manual
Page 161

139
EXTENDING FLASH CS4 PROFESSIONAL
Document object
fl.getDocumentDOM().getTimeline().currentFrame = 10;
fl.getDocumentDOM().selection =
fl.getDocumentDOM().getTimeline().layers[0].frames[10].elements;
The following example creates a rectangle in the upper left corner of the Stage and a text string underneath the
rectangle. Then it selects both objects using
and adds them to the
document.selection
array. Finally, it displays the contents of
document.selection
in the Output panel.
fl.getDocumentDOM().addNewRectangle({left:0, top:0, right:99, bottom:99}, 0);
fl.getDocumentDOM().addNewText({left:-1, top:117.3, right:9.2, bottom:134.6});
fl.getDocumentDOM().setTextString('Hello World');
fl.getDocumentDOM().setSelectionRect({left:-28, top:-22, right:156.0, bottom:163});
var theSelectionArray = fl.getDocumentDOM().selection;
for(var i=0;i<theSelectionArray.length;i++){
fl.trace("fl.getDocumentDOM().selection["+i+"] = " + theSelectionArray[i]);
}
The following example is an advanced example. It shows how to loop through the layer array and elements array to
locate instances of a particular symbol and select them. You could extend this example to include loops for multiple
frames or scenes. This example assigns all instances of the movie clip
myMovieClip
in the first frame to the current
selection:
// Assigns the layers array to the variable "theLayers".
var theLayers = fl.getDocumentDOM().getTimeline().layers;
// Creates an array to hold all the elements
// that are instances of "myMovieClip".
var myArray = new Array();
// Counter variable
var x = 0;
// Begin loop through all the layers.
for (var i = 0; i < theLayers.length; i++) {
// Gets the array of elements in Frame 1
// and assigns it to the array "theElems".
var theElems = theLayers[i].frames[0].elements;
// Begin loop through the elements on a layer.
for (var c = 0; c < theElems.length; c++) {
// Checks to see if the element is of type "instance".
if (theElems[c].elementType == "instance") {
// If the element is an instance, it checks
// if it is an instance of "myMovieClip".
if (theElems[c].libraryItem.name == "myMovieClip") {
// Assigns elements that are instances of "myMovieClip" to "myArray".
myArray[x] = theElems[c];
// Increments counter variable.
x++;
}
}
}
}
// Now that you have assigned all the instances of "myMovieClip"
// to "myArray", you then set the document.selection array
// equal to myArray. This selects the objects on the Stage.
fl.getDocumentDOM().selection = myArray;