You can't instanitate Menu from MXML either.

 

Instead of extending Alert, just use a TitleWindow with your own logic
in it.

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Daniel Gold
Sent: Thursday, May 01, 2008 8:13 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Re: Extending Alert

 

This peaked my interested and I quickly flipped through the Alert class
to see what was going on. Nothing really caught my attention so it seems
like this is enforced by the MXML compiler. I verified this by adding an
Alert in AS without using the static show funciton. In a simple test
application I added a button that called this:

                var alert:Alert = new Alert();
                addChild(alert);

An empty Alert window was added to the application. Seems kind of
bizarre the way this component works. Are there any other cases of flex
components extending UIComponent that aren't allowed to be instantiated
through MXML?

One thing you could do is follow their pattern of having a class with a
static show() function. If you don't mind building the entire component
in ActionScript that function could create a TitleWindow/Panel, apply
the styles, add the children you want, and add the container to the
application or specified parent. As long as the class doing this isn't a
UIComponent itself, noone will be able to add it to a container in MXML.

On Thu, May 1, 2008 at 10:08 AM, climbfar <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote:

I believe this is a restriction brought on by the Adobe developers. 
You cannot do this in MXML:

<mx:Panel id="panel">
<mx:Alert>
</mx:Alert>
</mx:Panel> 

If you try to compile, you will get this message:

"Could not resolve <mx:Alert> to a component implementation."

To instantiate an Alert in MXML the proper coding would be:
<mx:Panel id="panel">
<mx:Button click="mx.controls.Alert.show('hello')"/>
</mx:Panel> 

Basically I would like to create a similar component that would be 
used for configuring some task modally and presumably extending it 
off the Alert or TitleWindow component.

G'day Mike

--- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
, Maciek Sakrejda <[EMAIL PROTECTED]> 
wrote:


>
> Why do you need to prevent usage through MXML? MXML is compiled 
down to
> ActionScript, so it's essentially just syntactic sugar. That is, by
> preventing using your components through MXML, you are just 
removing a
> convenient interface, and not restricting functionality.
> -- 
> Maciek Sakrejda
> Truviso, Inc.
> http://www.truviso.com <http://www.truviso.com> 
> 
> -----Original Message-----

> From: climbfar <[EMAIL PROTECTED]>
> Reply-To: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> 
> To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> 
> Subject: [flexcoders] Extending Alert
> Date: Thu, 01 May 2008 14:18:55 -0000
> 
> How do I extend the Alert class such that the new class cannot be 
> created using MXML tags? Taking it a step further is it possible to 
> create an ActionScript class extended from Panel that cannot be 
> constructed using MXML tags?
> 
> G'day Mike
>

 

 

Reply via email to