Toon posts:

[AS2.0] Parent van een XML object

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben maar eens bezig gegaan met AS2.0, nu kwam ik direct al op een probleem. Wanneer ik mijn XML parse, wil ik aan de hand van de informatie een of meerdere MC's aanmaken. Nu kon ik dit in MX doen met:

Flash ActionScript:
1
2
3
4
5
6
7
myXML = new XML();
myXML.ignoreWhite = true;
myXML.parent = this;
myXML.onLoad () {
    ...
    this.parent.createEmptyMovieClip();
}


In AS2.0 kan ik het object myXML geen variabele meer meegeven, waardoor bovenstaande methode niet meer mogelijk is. Om dit op te lossen dacht ik om een class te schrijven die het XML object extends, met als extra een variabele parent. (ik heb het overigens nog niet werkend gekregen.

Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
class eXML extends XML {
    private var parent:String;

    function eXML () {}
    
    public function get _par ():String {
        return parent; 
    }

    public function set _par ( parent_param:String ):Void {
        parent = parent_param;
    }
}


Is dit de goede methode of kan ik het ook op een andere manier aanpakken. BTW. nu met de komst van private en public variabelen is het nog verstandig om getter/setter functies te gebruiken? Wat je met een public variabele zou krijgen:

Flash ActionScript:
1
2
3
4
5
class eXML extends XML {
    public var parent:String;

    function eXML () {}
}

[ Voor 13% gewijzigd door Verwijderd op 07-10-2003 12:46 ]


Verwijderd

Hoort deze post niet hier (Programming & Webscripting) thuis ??

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Nee, client-side scripting hoort hier :)

Intentionally left blank


  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 13:41

GrimaceODespair

eens een tettenman, altijd ...

offtopic:
Is dit nou het eerste officiële AS2.0-topic? B)


Ik heb nog geen AS2.0 in de praktijk gedaan, maar dit lijkt OO-programmeertechnisch wel de juiste aanpak te zijn. Dat Owen straks weer langskomt en een betere oplossing aangeeft, dat nemen we er dan maar weer bij :P

edit:
of Ralph :P
vvv

[ Voor 6% gewijzigd door GrimaceODespair op 07-10-2003 10:00 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

In AS2.0 kan ik het object myXML geen variabele meer meegeven, waardoor bovenstaande methode niet meer mogelijk is.
Leg uit?

Verwijderd

Topicstarter
Wanneer ik :
Flash ActionScript:
1
2
myXML = new XML();
myXML.parent = this; 


doe krijg ik de volgende foutmelding:

"There is no property with the name 'parent'.
myXML.parent = this;"

Dit komt omdat in het standaard XML object niet de property parent zit. Wat ik dus dacht is een eigen XML object maken die het standaard XML uitbreid. Een andere oplossing zou zijn om het standaard XML object te gaan editten.

Maar ik sta graag open voor andere oplossingen!

[ Voor 6% gewijzigd door Verwijderd op 07-10-2003 12:46 ]


Verwijderd

Misschien gekke opmerking maar moet het niet:

Flash ActionScript:
1
myXML._parent=this;


zijn ipv.

Flash ActionScript:
1
myXML.parent=this;

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 13:41

GrimaceODespair

eens een tettenman, altijd ...

Verwijderd schreef op 07 oktober 2003 @ 12:37:
Misschien gekke opmerking maar moet het niet:

Flash ActionScript:
1
myXML._parent=this;


zijn ipv.

Flash ActionScript:
1
myXML.parent.this;
Dat is dus net de grap: het gaat niet om een bestaande property. Weer eens te snel... Toch niet... huh ? Mijn quote is anders dan het origineel. Heb jij nog snel ge-edit Seraph?

[ Voor 19% gewijzigd door GrimaceODespair op 07-10-2003 12:39 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Topicstarter
Nee ook niet, _parent is namelijk een property van het MC object, en niet van het XML object. Daarom moet je zelf deze property aanmaken (dmv. de XML class te editten, of dmv. een nieuwe class aanmaken (zie ook startpost))

Verwijderd

GrimaceODespair schreef op 07 October 2003 @ 12:38:
[...]

Dat is dus net de grap: het gaat niet om een bestaande property. Weer eens te snel... Toch niet... huh ? Mijn quote is anders dan het origineel. Heb jij nog snel ge-edit Seraph?
Haha ja sorry was een typo van mijn kant:

myXML.parent.this moest zijn myXml.parent=this;

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

oh,when?

...

Is dit de goede methode of kan ik het ook op een andere manier aanpakken. BTW. nu met de komst van private en public variabelen is het nog verstandig om getter/setter functies te gebruiken?
volgens mij haal hier een paar dingen door elkaar:

• visibility modifiers: in Flash MX2 zijn deze gelimiteerd tot public en private modifiers, waarvan de behavior van private is zoals protected in java. Variablen zonder modifier zijn automatisch public.
• Accessor methodes: de zogenaamde 'getters/setters' waarmee je de instantie variablen van een object mee kan benaderen
• Inheritance van een intrinsic ( built-in ) object zoals het XML object. De core objecten ( String, Array etc ) zijn ingebouwd in de player en kunnen niet zomaar uitgebreid worden.

Als je nu eens even duidelijk samenvat wat je precies wilt, kan er niet echt kaas van maken. :)

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


Verwijderd

Topicstarter
Uhm, ik parse mijn XML. In de onLoad handler wil ik een movieclip aanmaken. Omdat ik in de scope van het XML object zit, kan ik deze niet aanmaken, en ik moet dus verwijzen naar de parent van het XML object. Omdat deze geen parent heeft, wil ik het XML object een nieuwe variabele meegeven met het pad naar de parent.

Hoop dat het zo duidelijk is!

Verwijderd

Topicstarter
Ik heb nu de volgende oplossing gevonden.

Flash ActionScript:
1
2
3
4
5
6
var myXML:XML = new XML ();
myXML.ignoreWhite = true;
var parent:[naam class] = this;
myXML.onload = function () {
    trace (parent);
}
Pagina: 1