String is a primitive type, like int/uint/Number (which have operators) and
Boolean, which all have special casting rules and operator "overloading". Be
happy for that, at least... we could be *forced* to call toString() every
time we wanted the conversion (fortunately, it happens automatically most
the time!).
This always seems a bit muddy, because in AS3 even primitive types are
represented as "objects," though they are most certainly not straight
subclasses of Object (at least not using AS3 as the language, perhaps they
are in the C++ of the Player).
Troy.
On 5/4/07, Doug Lowder <[EMAIL PROTECTED]> wrote:
The String class does that though, doesn't it? For example,
var sid1 :String = new String("ID_101-102-103");
var sid2 :String = "ID_101-102-103";
var sid3 :String = new String(sid1);
are all legal. Maybe there is a reason why String can't be extended
(I haven't tried it), but it might be worth looking into.
--- In [email protected] <flexcoders%40yahoogroups.com>, "Michael
Schmalle"
<[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> > var sid2 :StringId = "ID_101-102-103";
>
> There is no way you can do that. AS3 uses typing and that is all
you are
> doing.
>
> The "" is the string constructor and there is no way to change that.
>
> If I understand what you are asking there is something you can use
so you
> don't have to use toString().
>
>
> public function StringId(stringId :Object)
> {
> if (stringid is StringId)
> this.guid = stringId.toString();
> else if(stringid is String)
> this.guid = stringid;
> else
> throw new Error("Incorrect argument type. Must be of type
String or
> StringId");
> }
>
>
> On 5/4/07, Sebastian Feher <[EMAIL PROTECTED]> wrote:
> >
> > I need a class that contains one string that has some
constrains when
> > is created.
> >
> > package mypackage
> > {
> > public class StringId
> > {
> > private var stringId :String;
> >
> > public function StringId(stringId :Id)
> > {
> > this.guid = stringId;
> > }
> > }
> > }
> >
> > This works fine:
> > var sid1 :StringId = new StringId("ID_101-102-103");
> >
> > but I would like to be able to type also:
> > var sid2 :StringId = "ID_101-102-103";
> >
> > and:
> > var sid3 :StringId = new StringId(sid1);
> >
> > Is there any copy constructor / assignment operator / multiple
> > constructors trick that I can use?
> >
> > The last one I can either replace with:
> > var sid3 :StringId = new StringId(sid1.toString());
> >
> > or have the constructor make the distinction between the String
and
> > StringId being passed in.
> >
> > Any ideas/hints ?
> >
> > Thanks,
> > Sebastian
> >
> >
> >
>
>
>
> --
> Teoti Graphix
> http://www.teotigraphix.com
>
> Blog - Flex2Components
> http://www.flex2components.com
>
> You can find more by solving the problem then by 'asking the
question'.
>