Sjeiti
%Europe/Berlin %549 %2005, 14:11
Ben maar weer eens aant proberen van as1 naar as2 te gaan... maar stuit op een aantal problemen.
Ik werkte altijd al met externe scripts en #include, en heelveel met prototyping om bestaande classes te extenden.
In een basis script dat ik include stond bijvoorbeeld iets om recursief door xml heen te fietsen:
Object.prototype.get = function(sNode, iDepth, lReturn) { etc...
...zodat in je bij een xml node alleen hoefde te zeggen: aDiv = xHtml.get("div");
Maar blijkbaar kan dat met actionscript 2 niet meer... (?)
Ik heb dus geprobeerd een XML2 class te maken die XML extend. Het wil zichzelf alleen niet aanroepen. Mischien heeft het met het casten van xNode naar XML2 te maken... ik weet het niet... feit is dat xNode.get(sName,iDepth,aReturn) het gewoon niet doet (ook al krijg ik geen errors).
class nl.shapers.XML2 extends XML {
function get(sName:String, iDepth:Number, aReturn:Array):Array {
if (iDepth==null) iDepth = -1;
if (aReturn==null) aReturn = new Array();
if (iDepth!=0) iDepth--;
for (var i=0;i<this.childNodes.length;i++) {
var xNode:XML2 = this.childNodes[i];
if (xNode.nodeName==sName) aReturn.push(xNode);
if (xNode.childNodes.length!=0&&iDepth!=0) aReturn = xNode.get(sName,iDepth,aReturn);
}
return aReturn;
}
}
Ik werkte altijd al met externe scripts en #include, en heelveel met prototyping om bestaande classes te extenden.
In een basis script dat ik include stond bijvoorbeeld iets om recursief door xml heen te fietsen:
Object.prototype.get = function(sNode, iDepth, lReturn) { etc...
...zodat in je bij een xml node alleen hoefde te zeggen: aDiv = xHtml.get("div");
Maar blijkbaar kan dat met actionscript 2 niet meer... (?)
Ik heb dus geprobeerd een XML2 class te maken die XML extend. Het wil zichzelf alleen niet aanroepen. Mischien heeft het met het casten van xNode naar XML2 te maken... ik weet het niet... feit is dat xNode.get(sName,iDepth,aReturn) het gewoon niet doet (ook al krijg ik geen errors).
class nl.shapers.XML2 extends XML {
function get(sName:String, iDepth:Number, aReturn:Array):Array {
if (iDepth==null) iDepth = -1;
if (aReturn==null) aReturn = new Array();
if (iDepth!=0) iDepth--;
for (var i=0;i<this.childNodes.length;i++) {
var xNode:XML2 = this.childNodes[i];
if (xNode.nodeName==sName) aReturn.push(xNode);
if (xNode.childNodes.length!=0&&iDepth!=0) aReturn = xNode.get(sName,iDepth,aReturn);
}
return aReturn;
}
}