Det kan godt være det bare er mig, men Delegate.create bruges vel egentlig bare til at redelegere scope, jeg er ikke sikker på at den sender et objekt med en attribut, der peger på det oprindelige scope?
Det ligner lidt en kombination af en EventDispatching ting og Delegate du har gang i?
(men som sagt, kan det bare være min indsigt i Delegate, der ikke er dyb nok?)
Hvis du delegerer scope ud er "this" vel klasse scope, og dermed en reference til objektet selv, fremfor "itemHead"?
Det er vel netop det der er pointen med Delegate, at få "this" til at pege i klassens scope og ikke som i indlejrede funktioner, hvor "this" er røget ind i et aggregeret objekts scope?
Right again - Den havde jeg ikke lige gennemtænkt :o)
Så sådan her da: import mx.utils.Delegate; class Harmonika extends MovieClip { function Harmonika() { init(); } private function init():Void { var itemHead:MovieClip = this.attachMovie("harmonikaItemHead", "itemHead", 1); var del = itemHead.onRelease = Delegate.create(this, itemHeadOnRelease); del.item = itemHead; } function itemHeadOnRelease():Void { trace(arguments.caller.item);// returner itemHead } }
tak for svarende begge to. Ja, det kan godt være jeg nogen gange blander tingene lidt sammen. Jeg leder for tiden efter en rigtig hardcore as2 bog, men jeg synes det er svært at finde en der ikke starter med at forklare hvad en variabel er... Kender i nogle gode som går godt i dybden?
Thulstrup det virker jo som det skal, desværre er jeg ikke helt sikker på hvorfor? Kan du forklare?
Iøvrigt kan du kigge her http://www.calvinly.com/weblog/000130.html hvor netop problemet med parametre og Delegate diskuteres, og der linkes til et alternativ til Delegate, der løser problemstillingen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.