[actionscript] functie aanroepen van objectinstantie

Pagina: 1
Acties:

  • Zynth
  • Registratie: September 2001
  • Laatst online: 20-05 19:47
Ik heb een waarschijnlijk er simpele vraag,
maar ik kom er echt niet uit.
Ik heb een movieobject, menu_item, waarvan ik in mijn
flashfilmpje een instantie aanmaak. Deze heet menuitem1.
in dat movieobject heb ik een testfunctie staan:
code:
1
2
3
function groente(){
  return "4";
}

verder heb ik in mijn hoofdfilmpje een dynamische text met als
variabele naam: textje, maar dat werkt verder. (textje="400"; werkt goed).

Het probleem is nu;
als ik doe: textje=menuitem1.groente();
dan gebeurt er niets.

Mijn vraag is dus; hoe roep ik een functie aan in een ander object?

[ Voor 3% gewijzigd door Zynth op 15-12-2003 16:12 ]


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
te weing info imho:

maar dit werkt zeker:

Flash ActionScript:
1
2
3
//in een "global" layer

menuitem1.groente = function() { return "4"; }

  • Zynth
  • Registratie: September 2001
  • Laatst online: 20-05 19:47
mja, dat is dus niet zo handig.
Ik voer namelijk een x aantal keer een duplicatemovieclip uit
op dat menuitem, maar dan zou ik dus ook voor elk van die dingen
op die manier een functie aan moeten maken.
Het was nou juist de bedoeling dat ik dat maar 1x hoefde te doen
zodat mijn programmeercode overzichtelijker zou blijven

  • Willem
  • Registratie: Februari 2001
  • Laatst online: 16:23
Dan voer je die functie toch uit nadat je 'em hebt geduplicate :?

Motor (of auto) onderhoud bijhouden


Verwijderd

bij mij werkt het gewoon. weet je wel zeker dat je mc op de stage staat wanneer je dat textje=menuitem1.groente(); aanroept?

  • Zynth
  • Registratie: September 2001
  • Laatst online: 20-05 19:47
dat kan wel inderdaad.
Maar ik duplicate op de volgende manier:

for(blabla)
duplicateMovieClip("menu_item", "menuitem"+i, i);

alleen nu kan ik dus niet doen
"menuitem"+i+".groen" = function(.............
Hoe kan ik dan toch in een lus voor elke instantie een
functie aanmaken?

  • Zynth
  • Registratie: September 2001
  • Laatst online: 20-05 19:47
Mijn mc staat inderdaad (netjes) op de stage hoor.
Ik heb trouwens een voorbeeld van wat ik bedoel op
internet staan:
http://zynth.student.utwente.nl/files/Temp/voorbeeld.fla
Dat laat zien dat zoals ik het doe, het niet werkt ;)

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

is het sowieso wel handig om een functie zoveel keer te duplicaten?

Volgens mij moet je net andersom denken en een unieke_waarde aan die movieclip meegeven. Met deze unieke waarde kan je _parent.functionname( unieke_waarde ) een functie callen...

Of is dat helemaal niet toepasbaar in je project?!

:)

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
tja dan is er nog

code:
1
2
3
4
5
_global.someFunc = function( return whatever};

//na je dup

_root["menuitem"+i"].groente = _global.someFunc;


nog mooier is er gewoon een componentje van te maken (easy as cake)

desnoods MovieClip.prototype.groente = function() ; //!ouch ;)

en dan is er nog iets met ASPropflags en OOP in flash maar nu dat ASv2.0 uit is zou ik daar toch niet mee beginnen.

Is het eigenlijk de bedoeling dat alle dups hetzelfde returnen?

  • Zynth
  • Registratie: September 2001
  • Laatst online: 20-05 19:47
nee, dat is niet de bedoeling :)
het wordt een functie die gewoon van het object zelf een aantal properties zet etc.

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
dus het is gewoon om wat member variablen te "zetten"?

zou ik

Flash ActionScript:
1
2
3
4
5
6
7
8
_global.updateObject = function(aObject)
{
    with(aObject) { yaidienbla};
}

//... na je dup

_global.updateObject(_root["menuitem"+i);


als je elk object ECHT OO wil doen zou ik echt voor een componentje gaan en dan attach gebruiken ipv duplicate. hou je alles wat "gescheiderner".
Pagina: 1