Troy Gilbert wrote:
> 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!).
>
String is not a primitive, it is a class. It is declared(public final
class String) final so you cannot extend it.
paul
> 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'.
>> >
>>
>>
>>
>