2
votes

I'm attempting to draw a text box on the screen. If I assign width and height to any value, as in the code below, I don't see anything drawn. Why is this? What is the use of width and height? Adobe's docs say it's the width/height of the sprite in pixels. Why would that occlude or prevent the drawing of a textbox or another box? I assumed the width/height would set the area that this sprite could be drawn upon, but based on this, I'm probably wrong.

Thanks in advance.

-Nick

package {

import flash.display.Sprite;
import flash.events.Event;
import mx.core.* ;
import mx.collections.* ;
import flash.display.* ;
import flash.text.* ;

[SWF(width=1000,height=500)]
public class BareBones extends Sprite
{
    public var backBuffer:BitmapData;
    public var clearColor:uint = 0xFF0043AB;
    public var display_txt:TextField;
    public var i:uint = 0
    public function BareBones()
    { 
        addEventListener(Event.ENTER_FRAME, step);
        width = 1000;
        height = 500;
        display_txt = new TextField();
        display_txt.text = "Hello World!";
        addChild(display_txt);
    }

    private function step(event:Event) : void
    {
        i++;
        display_txt.text = i.toString();
    }
}

}

1
just try to create the textfield, and afterwards set the width/height of the container. Still, don't fully understand what is your final goal...goliatone
I'm just trying to display a textfield. I'm confused as to why setting the dimensions of the BareBones would cause the textfield to not display.Nikhil

1 Answers

0
votes

When you set width and height in the constructor, you're actually affecting the scaleX and scaleY variables, which in turn affect root's transform.matrix.

In order to know how to set scaleX, Flash works off the content that is inside the clip. For example if you have a MovieClip with a 100x100 box in it, and you set width = 200, Flash will calculate that you mean scaleX = 2.

However you are setting width and height on a clip with nothing in it. The consequence is that scaleX and scaleY are both being set to 0.