You can't use code like
this["movie_number_" + idNumber];
unless you've pre-declared vars (or getter/setters) named movie_number0,
movieNumber1, movieNumber2, etc. -- which doesn't make any sense because you
usually don't know how many you'll need -- or made your class dynamic -- which
isn't recommended because dynamic vars are slower. Otherwise, you'll get a
runtime error that, for example, movie_number3 isn't a valid property on your
class. (I don't remember the exact wording of the error message.)
So forget about that. You need to understand how to use an Array to keep track
of multiple instances. It's easy:
1. Declare an instance var of type Array and initialize it to an empty Array:
public var textBoxes:Array = [];
2. Every time to create a new TextBox, push it into the Array. For example,
inside some method, do
var textBox:TextBox = new TextBox();
textBox.foo = bar;
addChild(textBox);
textBoxes.push(textBox);
3. In any other method, you can refer to textBox[i] to get the ith one you
created.
Gordon Smith
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of David
Pariente
Sent: Thursday, June 19, 2008 7:18 AM
To: [email protected]
Subject: Re: [flexcoders] Re: string to actual actionscript code?
Wow, that answer will really help me! :)
What if it's not movies, but some other object that i wanna create 20 times?
I thought it should get inside some kind of Array, but not sure if its this way
too.
i.e.
var MyTextBox:TextBox=new textBox();
what if i need N instances of that MyTextBox? Should i create an Array before
that? What's the right way to put those textBoxes into the Array?
I'm sorry for the basic of my question....but im quite new to AS3 and OOP, and
i did use and misuse of evals a lot in AS1 and AS2.
Thanx a lot for the help :)
----- Mensaje original ----
De: Josh McDonald <[EMAIL PROTECTED]>
Para: [email protected]
Enviado: jueves, 19 de junio, 2008 14:16:50
Asunto: Re: [flexcoders] Re: string to actual actionscript code?
No worries, the equivalent of
eval("movie_number_" + idNumber);
would be:
this["movie_number_" + idNumber];
To explain, in actionscript 3 (and in Javascript), these two references are
equivalent:
this.someField = true;
this["someField"] = true;
trace("the value is " + anObject.button7) ;
trace("the value is " + anObject["button7"]);
Notice the fact that it's a string. You can also use numbers (this is how
arrays work), and other objects, but with objects the runtime simply calls
.toString() and then goes ahead with the string, IIRC.
-Josh
On Thu, Jun 19, 2008 at 9:20 PM, David Pariente <xxmapachexx@ yahoo.es
<mailto:[EMAIL PROTECTED]> > wrote:
Thnx for the psicological help :)
Tecnically i come from AS1 and AS2 where i used to create multiple copies of
movieclips, and created with a name as:
eval("movie_number_"+idnumber);
maybe i should need an easy example of how to create multiple objects
dinamically, and most important, how to access them later.
Thnx, u guys are kind ;)
----- Mensaje original ----
De: Josh McDonald <[EMAIL PROTECTED] com <mailto:[EMAIL PROTECTED]> >
Para: [EMAIL PROTECTED] ups.com <mailto:[email protected]>
Enviado: martes, 17 de junio, 2008 0:50:17
Asunto: Re: [flexcoders] Re: string to actual actionscript code?
Gordon,
I can live without eval() and associated evilness, but I'd sell my left
testicle for the ability to mark a Proxy as extending or implementing various
classes or interfaces.
Mario - As for this sort of pseudo-eval that theyou're after, you could
definitely cook up something similar to that without *too much* work, but I
don't think it's the correct solution to whatever the actual root problem is.
We need more information as to context to be more help :)
-Josh
On Tue, Jun 17, 2008 at 4:27 AM, Gordon Smith <[EMAIL PROTECTED] com
<mailto:[EMAIL PROTECTED]> > wrote:
Why are you lost without eval()? What would you use it to do? Many
developers think they need it when they really don't; there are often other
ways to accomplish what they're trying to do.
Gordon Smith
Adobe Flex SDK Team
________________________________
From: [EMAIL PROTECTED] ups.com <mailto:[email protected]>
[mailto:[EMAIL PROTECTED] ups.com <mailto:[email protected]> ] On
Behalf Of David Pariente
Sent: Monday, June 16, 2008 7:35 AM
To: [EMAIL PROTECTED] ups.com <mailto:[email protected]>
Subject: Re: [flexcoders] Re: string to actual actionscript code?
They answer u about eval() cause that was what eval() was for. I used
it so often in AS1 and AS2. Lost now in AS3 without it :(
----- Mensaje original ----
De: mariovandeneynde <mariovandeneynde@ yahoo.com <mailto:[EMAIL
PROTECTED]> >
Para: [EMAIL PROTECTED] ups.com <mailto:[email protected]>
Enviado: lunes, 16 de junio, 2008 12:08:26
Asunto: [flexcoders] Re: string to actual actionscript code?
No, I'm just wondering if there is a way to convert a string to actual
actionscriptcode. ..
--- In [EMAIL PROTECTED] ups.com <mailto:flexcoders%40yahoogroups.com>
, "Michael Schmalle"
<teoti.graphix@ ...> wrote:
>
> Hi,
>
> There is no eval() in actionscript if that is what you are wondering.
>
> Mike
>
> On Mon, Jun 16, 2008 at 5:33 AM, mariovandeneynde <
> mariovandeneynde@ ...> wrote:
>
> > Greetings,
> >
> > I was wondering if the following situation would be possible:
> >
> > imagine having a string like
> >
> > var query:String = "Object.property. toString( ) ==
somevalue.toString( )";
> >
> > and that the string somehow could be converted to actual
actionscript
> > code...
> >
> > if(query){
> > trace("your actionscriptquery worked");
> > }
> > else{
> > trace("your actionscriptquery did not worked");
> > }
> >
> >
> >
>
>
>
> --
> Teoti Graphix, LLC
> http://www.teotigra phix.com <http://www.teotigraphix.com>
>
> Teoti Graphix Blog
> http://www.blog. teotigraphix. com <http://www.blog.teotigraphix.com>
>
> You can find more by solving the problem then by 'asking the
question'.
>
________________________________
Enviado desde Correo Yahoo!
<http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http:/us.rd.yahoo.com/evt=52431/*http:/es.docs.yahoo.com/mail/overview/index.html>
La bandeja de entrada más inteligente.
--
"Therefore, send not to know For whom the bell tolls. It tolls for thee."
:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED] com <mailto:[EMAIL PROTECTED]>
________________________________
Enviado desde Correo Yahoo!
<http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http:/us.rd.yahoo.com/evt=52431/*http:/es.docs.yahoo.com/mail/overview/index.html>
La bandeja de entrada más inteligente.
--
"Therefore, send not to know For whom the bell tolls. It tolls for thee."
:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED] com <mailto:[EMAIL PROTECTED]>
________________________________
Enviado desde Correo Yahoo!
<http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http:/us.rd.yahoo.com/evt=52431/*http:/es.docs.yahoo.com/mail/overview/index.html>
La bandeja de entrada más inteligente.