Aggiungere proprietà ad un MovieClip
venerdì 9 novembre, 2007Nel Post Estendere i MovieClip in Adobe Flash MX avevo illustrato alcune tecniche per estendere un MovieClip. In particolare avevo detto che l'uso di MovieClip.prototype non permetteva l'estensione di proprità ma solo di metodi:
[...] Due importanti limitazioni di questa tecnica sono:
- Non può essere applicata a tutti gli oggetti esposti da Flash
- Possono essere "aggiunti" solo metodi e non proprietà [...]
In verità è possibile, con un passaggio in più, aggiungere dinamicamente proprietà anche usando MovieClip.prototype. Prima dell'introduzione di function get e function set, infatti, Flash permetteva l'aggiunta di proprietà (in lettura/scrittura o solo lettura) tramite il metodo addProperty(). Nella pratica questo si traduce nell'invocazione del metodo addProperty() e nella definizione di due funzioni getter e setter. La setter può essere null così da creare proprietà in sola lettura. Ad esempio se volessimo estendere tutti i MovieClip con una nuova proprietà _alpha in grado di aggiungere un'animazione, basta scrivere il seguente codice:
Da questo momento in poi se abbiamo un simbolo "miosimbolo_mc" possiamo sfruttare questa nuova proprietà:
-
miosimbolo_mc._alpha_tween = 50;
Quello che non è possibile fare, invece, è sovrascrivere le proprietà esistenti; per questo motivo ho usato _alpha_tween invece di _alpha. Ecco, quindi, un buon motivo per usare comunque le Classi 2.0 per estendere - e derivare - eventuali MovieClip.










19

Si c'è da considerare anche che definendo MovieClip.prototype... questo vale per qualsiasi MovieClip sullo stage con un conseguente spreco di risorse da parte del Player.
Grazie alla OOP e alle classi introdotte in AS2.0 tutto ciò è diventato deprecato e obsoleto.
Ciao e complimenti per gli ottimi post.
Giusto! L'unica cosa buona di questo metodo è nei casi in cui tutti i MovieClip devono disporre di una particolare proprità o metodo. In questo caso o si crea una classe IUnknown che ereditano le classi successive o si usa l'ancora disponibile MovieClip.prototype...
undolog » Blog Archive » Aggiungere proprietà ad un MovieClip...
Nel Post Estendere i MovieClip in Adobe Flash MX avevo illustrato alcune tecniche per estendere un MovieClip. In particolare avevo detto che l'uso di MovieClip.prototype non permetteva l'estensione di proprità ma solo di metodi:...