[Flash AS2.0] Hoe een extended MovieClip instancieren

Pagina: 1
Acties:

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
Nou meer precies hoe een deftige STRONG scoped new Instance creeren van een classe die extends van MovieClip.

Natuurlijk werkt:

Flash ActionScript:
1
   var tMC:MovieClip = attachMovieClip("mySubClass",......);


Maar aangezien mySubClass een echte class is die 'extends MovieClip' doet wil ik natuurlijk

Flash ActionScript:
1
   var tClass:mySubClass = attac.....


Maar dit kan niet want hij 'verwacht' MovieClip. (ie ik cast down niet up).

Is er een manier om dit te doen want ik wordt zo wat zot van de absurditeit van al dat strong getype van AS2.0 dat helemaal op niets slaagd.

Ik zie gewoon geen enkele manier waarop ik iets kan downcasten (ie van minder naar meer specifiek)
en dan wordt ik wel verplicht om gewoon

Flash ActionScript:
1
    tMC.myFunctionThatHeDoesntKnowOf()


te gaan doen.

er is wel iets in As2lib:

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static function newInstance(base_mc:MovieClip, 
                            newName:String, 
                            depth:Number):SomeClass
    {
        // attach empty clip and modify __proto__ property to this class
        base_mc.createEmptyMovieClip(newName, 
                    (null == depth) ? 
                    base_mc.getNextHighestDepth() : depth);
        var mc = base_mc[newName];
        mc.__proto__ = SomeClass.prototype;
        mc.prototype = MovieClip;
        var modelClass = ReflectUtil.getClassInfoByName("SomeClass");
        var constructor:ConstructorInfo = modelClass.getConstructor();
        var method = constructor.getMethod();
        method.apply(mc, arguments.slice(3));
        return mc;
    }


maar als ik DAT voor elke class moet gaan doen..

echt jong AS2.0 is gewoon *crap* :) ...

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

createObject of createClassObject gebruiken.

"You're only as good, as what you did last week."


Verwijderd

Nu heb ik weinig kaas gegeten van AS, maar ik heb er wel eens erg usevolle site erop na geslagen:
http://proto.layer51.com/

Verwijderd

Je kunt toch gewoon casten:

var tClass:mySubClass = mySubClass( attac..... );

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
en idd dat laatste werkt gewoon!

foei van me om ipv (mySubClass)... niet de mySubClass(...) te proberen.

ipv createObject / createClassObject : ik wil niet het v2 component systeem gebruiken..