Having a dangling concrete class reference is really a cheat. due to the
nature of Flex/ActionScript class hierarchies. Perhaps a better term in lieu
of 'dynamic' would be 'unknown.' This is where interfaces make a great deal
of sense and provide a no-nonsense way of saying. "I don't know what I'm
going to load here but generally this is what I want it to do and this is
minimally what it should look like."  Introspection can quickly become a
chicken and egg scenario when dealing with unknowns - which is why the
dangling concrete class reference has been embraced by so many (typically
those who haven't been doing this with C, C++, etc). I agree with Dale. the
dangling reference isn't the solution to the 'unknown' problem. The first
step would be looking towards interfaces --- the next would be using the
ActionScript Object type for complete freedom. 

 

Rick Winscot

 

 

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Stephen Downs
Sent: Friday, April 18, 2008 3:48 AM
To: [email protected]
Subject: Re: [flexcoders] Dynamic Instance Problem

 

You just need to declare it somewhere, its still dynamic, i.e. it may be
created it may not. You don't have to actually use the declared var, your
just making sure thats its available for creation.

 

private var declared:views.pr.ProjectView;

 

 

--------------------------------------------------------------

 

Stephen Downs 

Addict, Tink Ltd.

 

e:  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]

t: +44 (0) 7730 838 785

w:  <http://www.tink.ws> http://www.tink.ws

 

--------------------------------------------------------------

 

 





 

On 18 Apr 2008, at 08:38, Dale Fraser wrote:



 

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