PDA

Volledige versie bekijken : local variabelen AS2 naar AS3


jackohoogeveen
%Europe/Berlin %482 %2008, 12:34
hey mede flashfocus leden! :)

ik zit met een probleem. ik werk inmiddels als een jaartje met AS2 en wil nu graag de stap maken naar AS3. helaas lukt mij nog niet alles helemaal. ik wil namelijk graag een local variabel aan maken van uit de root.

in actionscript 2 is dit heel simpel, dan zou ik het volgende doen:


knop1_mc.id= 1;
trace(knop1_mc.id) // trace "1"


in actionscript 3 werkt dit helaas niet erg makkelijk. ik heb het volgende geprobeerd:


var knop1_mc.id:Number = 1;
trace(knop1_mc.id) // trace "undefined"


kan iemand mij met dit probleem helpen? ik kom er namelijk echt niet uit. :@

jaspermuts
%Europe/Berlin %488 %2008, 12:43
Je AS2 code werkt prima in AS3:

knop1_mc.id= 1; // 'id' is geen var maar een property, die kun je geen datatype meegeven
trace(knop1_mc.id) // trace "1"

jackohoogeveen
%Europe/Berlin %547 %2008, 14:07
super het werkt :D ! ik zit nu echter met een ander probleem. misschien weet je daar ook een oplossing voor. knop1_mc is een simpele movieClip met een gekleurde rechthoek met een tekst er over heen. het volgende scipt heb ik geschreven


knop1_mc.id = 1;

knop1_mc.addEventListener(MouseEvent.CLICK, onClik);

function onClik(event:MouseEvent):void
{
trace(event.target.id)
}


als ik naast te tekst van de knop klik werkt het perfect. maar als ik op de tekts klikt klik krijg ik de volgende error

ReferenceError: Error #1069: Property id not found on flash.text.TextField and there is no default value.
at Untitled_fla::MainTimeline/onClik()

de computer probeert de property "id" uit het tekst veld te halen. is er een makkelijke manier om het te forceeren om de property uit de MC tehalen?

Dauntless
%Europe/Berlin %548 %2008, 14:09
Je hebt op het tekstvak geklikt, dus "event.target" verwijst naar het textfield (zoals in de error staat). Jij wilt echter het object waar de listener op staat, en dat is "event.currentTarget" :)

jackohoogeveen
%Europe/Berlin %554 %2008, 14:19
dankje het werkt nu helemaal perfect. voor de rest kan ik nu eindelijk mijn oude AS2 kennis toepassen :D