tags:

views:

218

answers:

2

Hi,

I'm trying to figure out how to in as3 (not mxml) add views to a view stack.

For example I have a view component like so

package components.screens
{
    import mx.controls.Label;
    import mx.core.UIComponent;

    public class HomeScreen extends UIComponent
    {
        private var l:Label=new Label()

        public function HomeScreen()
        {
            super();

            l.text="home";

            addChild(l)
        }

    }
}

I've being trying to add it to a viewstack in the following way

var myStack:ViewStack= new ViewStack();

mystack.addChild(homeScreen)

This does not work. Whats the correct way?

I'm aware I have to assign ID's but for now I just want to get the view in there

+1  A: 

You need to add the AS3-created ViewStack to some parent on the stage.

var myStack:ViewStack= new ViewStack();
mystack.addChild(homeScreen)
this.addChild(myStack);
Sam
Good point; one I did catch in my own answer.
www.Flextras.com
+2  A: 

Can you quantify "Does not work" Are you getting a compile time error; or a run time error? Or something else?

I'm pretty sure all of the ViewStack's children must be containers; so in theory your custom component should be extending container, not UIComponent.

To quote http://livedocs.adobe.com/flex/3/langref/mx/containers/ViewStack.html

A ViewStack navigator container consists of a collection of child containers

www.Flextras.com
that was the problem. I was trying to add a UIComponent which is not a container. Thanks!
dubbeat