Dale - you are right. the more dangling class (concrete) references you have
to keep in your code to keep introspection from failing - the more your
approach looks like a problem rather than a solution. My first
recommendation is - if you have to use dangling references let them be
interfaces. This will allow you to swap out an implementation based on the
foundation of an established contract without being bound to the class name
(you can only have one class by a specific name. but you can have many
classes that implement your interface). If you require more flexibility.
your only other option is to acquire a reference to your new class but treat
and cast it as an Object and not a typed class. You can perform any
operation you need without a contract. however - the less you know about an
externally loaded asset and the potential implementation the greater your
risk of causing runtime errors.

 

Rick Winscot

 

 

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Dale Fraser
Sent: Friday, April 18, 2008 3:38 AM
To: [email protected]
Subject: RE: [flexcoders] Dynamic Instance Problem

 

Thanks,

 

That kind of makes it non dynamic if I need to reference it elsewhere. Is
there a way around this.

 

Regards

Dale Fraser

http://learncf.com <http://learncf.com/> 

http://flexcf.com <http://flexcf.com/> 

 

 

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Christophe Herreman
Sent: Friday, 18 April 2008 5:08 PM
To: [email protected]
Subject: Re: [flexcoders] Dynamic Instance Problem

 

Hi Dale,

did you reference the class somewhere in your code?
It needs to be compiled into the swf in order to instantiate it dynamically.

My personal preference is to do this with a static code block:

{
  MyClass1,
  MyClass2
}

regards,
Christophe

-- 
Christophe Herreman
http://www.herrodius.com
http://www.pranaframework.org

2008/4/18, Dale Fraser <[EMAIL PROTECTED]>:

Anyone tell me why this doesn't work.

 

var ClassName:String = 'views.pr.ProjectView';

var ClassReference:Class = getDefinitionByName(ClassName) as Class;

var instance:UIComponent = new ClassReference();

child.addChild( instance );

 

ReferenceError: Error #1065: Variable ProjectView is not defined.

      at global/flash.utils::getDefinitionByName()

      at Main/addTab()[C:\ Central\Flex\src\Main.mxml:86]

      at Main/treeChanged()[C:\ Central\Flex\src\Main.mxml:52]

      at Main/__menuTree_click()[C:\ Central\Flex\src\Main.mxml:138]

 

 

Regards

Dale Fraser

http://learncf.com <http://learncf.com/> 

http://flexcf.com <http://flexcf.com/> 

 

 




-- 
Christophe Herreman
http://www.herrodius.com
http://www.pranaframework.org 

 

<<image001.jpg>>

<<image002.jpg>>

Reply via email to