Toon posts:

[Actionscript 2.0] Dynamisch variabelen/objecten tvgn aan kl

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben momenteel een XML-parserklasse aan het bouwen. Deze XML-parserklasse wil ik zo gaan maken dat die de nodes teruggeeft in de vorm van objecten of variabelen met met naam van de coresponderende nodes.

Voorbeeld:
XML:
1
2
3
4
5
6
7
<eten>
    <gerecht>
        <naam>
            pizza margarita
        </naam>
    </gerecht>
</eten>

Flash ActionScript:
1
2
var oXMLParser:XMLParser = new XMLParser("test.xml");
trace(oXMLParser.eten.gerecht.naam); //'eten' is een object, 'gerecht' is een object / 'naam' is een variabele van het object gerecht


Het dynamisch aanmaken van objecten lukt mij wel. Echter het dynamisch koppelen van het eerste dynamische object aan de XML-parserklasse lukt mij niet. Ik heb zelf al verschillende constructies geprobeerd waaronder de onderstaande:

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
class XMLParser
{
    function XMLParser(sFileName:String)
    {
        var _root["DynamischeTest1"] = new function()
        {
            trace("Dit is een test");
        }
                
        this["DynamischeTest2"] = new _root["DynamischeTest1"];
    }
}

[ Voor 59% gewijzigd door Verwijderd op 06-12-2004 11:12 ]


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

oh,when?

...

En wat zegt je compiler...? Graag wat meer informatie :)

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


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 19-05 00:34

alienfruit

the alien you never expected

Zelf vind ik het erg handig om in ActionScript 2.0 gebruik te maken van de XmlConnector klasse, omdat je het dan gemakkelijk kan samen gebruiken met een DataSet en die werken weer heerlijk samen met de standaard Datagrid van Flash MX 2004.

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Ik heb niet zo'n verstand van Action script 2.0 maar moet je niet een veld maken en daarnaar verwijzen via this.veldNaam = ....

Lijkt me namelijk dat je objecten niet meer als array kunt aanspreken als je een 'echte' class op deze manier gebruikt. Mischien heb ik het mis hoor, maar het is het proberen waard. Ik zie namelijk verder geen veld terwijl je hem toch probeert te accessen. En is het nog steeds mogelijk om een object via een functie aan te maken? Zeker voor backwards compatibility.

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Mijn compiler zegt het volgende:

Line 10: There is no property with the name '_root'.
this["DynamischeTest1"] = new _root["DynamischeTest2"];

Ik kan inderdaad een public var aanmaken en hieraan het eerste node-object toe te wijzen, echter vind het mooier om het eerste node-object direct aan de klasse te koppelen. Je kunt inderdaad nog steeds 'klassen' aanmaken via var = new function.

Edit:

this["blaat"] = "test";
object["blaat"];

werkt wel. :?

[ Voor 46% gewijzigd door Verwijderd op 06-12-2004 16:50 ]


Verwijderd

Topicstarter
Even een kick, mocht iemand dit topic lezen en weten of het mogelijk is om dynamisch klassenvariabelen aan te maken.

Edit:

Je zou toch iets moeten kunnen doen in de zin van this.addVariable("blaat") of this.variables["blaat"].

[ Voor 36% gewijzigd door Verwijderd op 07-12-2004 10:22 ]

Pagina: 1