Shape, Sprite, and Movie Clip for Drawings
When you create drawings on Shapes, Sprites, and MovieClips, it's tempting to think you're placing the drawings inside containers—but you're not. At least, not in the true ActionScript sense of the word "container." As explained back in Chapter 14 (When Display Objects are Display Object Containers), Sprite and MovieClip objects are DisplayObjectContainers, meaning that by using the addChild() method, you can put objects inside a Sprite or MovieClip and the objects will be displayed. Shape, on the other hand, isn't a DisplayObjectContainer, so how can it show the drawn objects as shown in this chapter?
The fact of the matter is, when you draw as described in this chapter, you're drawing lines and shapes on the canvas or the background of the Shape, Sprite, or MovieClip. It's not the same thing as using the addChild() method, which adds an object to a DisplayObjectContainer. For example, you can't position a drawing to appear in front of an object that's added to a MovieClip using the addChild() method. Here's an example; the code appears in 18-8_Canvas_Drawing.fla in the Missing CD (www.missingmanuals.com/cds):
1 var tfPoem:TextField = new TextField(); 2 var mcCanvas:MovieClip = new MovieClip(); 3 4 tfPoem.text = "Twas brillig, and the slithy toves"; 5 tfPoem.x = 110; 6 tfPoem.y = 110; 7 tfPoem.autoSize=TextFieldAutoSize.LEFT; 8 mcCanvas.addChild(tfPoem); 9 10 mcCanvas.graphics.beginFill(0x99FFFF); 11 mcCanvas.graphics.drawRect(100,100,200,150); ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access