errr...

function getNumItems(level:int, xml:XML):int{
var levelXML:XML = xml.menu;
 for(var i:int = 0; i < level; i ++){
levelXML = levelXML.item[whichItems[i]];
 }
return levelXML.length();
}

On Sun, Aug 14, 2011 at 1:24 AM, Taka Kojima <[email protected]> wrote:

> I don't even know why I'm responding to this, but. Ktu gave you the answer
> yet you seemed to ignore it? You don't need an eval at all.
>
> function getNumItems(level:int, xml:XML):int{
>  var levelXML:XML = xml.menu;
>  for(var i:int = 0; i < level; i ++){
>  levelXML = levelXML.item[whichItems[level]];
> }
> return levelXML.length();
> }
>
> does exactly what this would do, if AS3 had an eval:
>
>             var j:String = "xml.menu.item[whichItems[0]]";
>             var k:String = new String();
>             var l:int = level;
>             while (l--)
>             {
>                 k += ".item[whichItems[" + String(l) + "]]";
>             }
>             totalItems = (j + k);
>
> Taka
>
>
> On Sat, Aug 13, 2011 at 7:17 PM, Merrill, Jason <
> [email protected]> wrote:
>
>> And here's another recursive function example for XML, slightly different,
>> with a more complex structure, showing how to get all values from some
>> attributes in an XML file (in this case, firstName and lastName), no matter
>> where or how deep they lie:
>>
>> var peopleXML:XML =
>> <people>
>>        <person firstName="Bob" lastName="Smith">
>>        <person firstName="Timmy" lastName="Smith" />
>>                <person firstName="Jenny" lastName="Jones" >
>>                        <person firstName="Sal" lastName="Stephens" />
>>                </person>
>>                <person firstName="Marcia" lastName="Marquez">
>>                        <person firstName="Julio" lastName="Rogers"/>
>>                </person>
>>        </person>
>>        <person firstName="Tom" lastName="Williams">
>>                <person firstName="Mary" lastName="Jones" />
>>                <person firstName="Albert" lastName="Denniston">
>>                        <person firstName="Barney" lastName="Elmington" />
>>                        <person firstName="Campo" lastName="Fatigua">
>>                                <person firstName="Harpo"
>> lastName="Oprah"/>
>>                        </person>
>>                        <person firstName="Hugo" lastName="Boss">
>>                                <person firstName="Benny"
>> lastName="Elkins"/>
>>                                <person firstName="Sheri"
>> lastName="Downing"/>
>>                        </person>
>>                </person>
>>        </person>
>>        <person firstName="Marcia" lastName="Marquez">
>>                <person firstName="Manny" lastName="Peterson"/>
>>        </person>
>>        <person firstName="Joe" lastName="Merritt"/>
>> </people>;
>>
>>
>> function recurseXML(xml:*):void
>> {
>>        var xmlList:XMLList = xml.children();
>>        for each (var currentNode:* in xmlList)
>>        {
>>                trace(currentNode.@firstName+" "+currentNode.@lastName);
>>                if(currentNode.children()) recurseXML(currentNode);
>>        }
>> }
>>
>> recurseXML(peopleXML);
>>
>> //Traces:
>> Bob Smith
>> Timmy Smith
>> Jenny Jones
>> Sal Stephens
>> Marcia Marquez
>> Julio Rogers
>> Tom Williams
>> Mary Jones
>> Albert Denniston
>> Barney Elmington
>> Campo Fatigua
>> Harpo Oprah
>> Hugo Boss
>> Benny Elkins
>> Sheri Downing
>> Marcia Marquez
>> Manny Peterson
>> Joe Merritt
>>
>>  Jason Merrill
>>  Instructional Technology Architect II
>>  Bank of America  Global Learning
>>
>>
>>
>>
>>
>> _______________________
>>
>>
>> -----Original Message-----
>> From: [email protected] [mailto:
>> [email protected]] On Behalf Of Merrill, Jason
>> Sent: Saturday, August 13, 2011 9:58 PM
>> To: Flash Coders List
>> Subject: RE: [Flashcoders] Simplify XML Call
>>
>> >> Then I think I hit on what Jason was suggesting:
>>
>> Not really. :) I think you're over complicating this.  This is all I was
>> suggesting you do from my original suggestion, it's pretty straightforward
>> (this is a test case you could copy paste and run):
>>
>> //DUMMY DATA:
>> var myXML:XML = <data>
>>        <functionalarea type="amountKeying"
>> backgroundImage="images/background.png">
>>                <exercises>
>>                        <exercise type="NoviceRDS">
>>                                <keyingItems>
>>                                        <keyingItem
>> fileURL="assets/images/simulations/ATC/atc_701201045.png"
>> invertedFileURL="myImages/myFileInverted1.png" legible="true" amount="78400"
>> />
>>                                        <keyingItem
>> fileURL="myImages/myFile2.png"
>> invertedFileURL="myImages/myFileInverted2.png" legible="false"
>> amount="743600" />
>>                                        <keyingItem
>> fileURL="myImages/myFile3.png"
>> invertedFileURL="myImages/myFileInverted3.png" legible="true"
>> amount="3213212" />
>>                                        <keyingItem
>> fileURL="myImages/amountkeying/myFile4.png"
>> invertedFileURL="myImages/myFileInverted4.png" legible="true"
>> amount="43242323" />
>>                                        <keyingItem
>> fileURL="myImages/myFile5.png"
>> invertedFileURL="myImages/myFileInverted5.png" legible="true" amount="78400"
>> />
>>                                        <keyingItem
>> fileURL="myImages/myFile6.png"
>> invertedFileURL="myImages/myFileInverted6.png" legible="false"
>> amount="342132" />
>>                                        <keyingItem
>> fileURL="myImages/myFile7.png"
>> invertedFileURL="myImages/myFileInverted7.png" legible="true" amount="78400"
>> />
>>                                </keyingItems>
>>                        </exercise>
>>                        <exercise type="ExpertRDS">
>>                                <keyingItems>
>>                                        <keyingItem
>> fileURL="assets/images/simulations/ATC/atc_701201045.png"
>> invertedFileURL="myImages/myFileInverted1.png" legible="true" amount="78400"
>> />
>>                                        <keyingItem
>> fileURL="myImages/myFile2.png"
>> invertedFileURL="myImages/myFileInverted2.png" legible="false"
>> amount="743600" />
>>                                        <keyingItem
>> fileURL="myImages/myFile3.png"
>> invertedFileURL="myImages/myFileInverted3.png" legible="true"
>> amount="3213212" />
>>                                        <keyingItem
>> fileURL="myImages/amountkeying/myFile4.png"
>> invertedFileURL="myImages/myFileInverted4.png" legible="true"
>> amount="43242323" />
>>                                        <keyingItem
>> fileURL="myImages/myFile5.png"
>> invertedFileURL="myImages/myFileInverted5.png" legible="true" amount="78400"
>> />
>>                                        <keyingItem
>> fileURL="myImages/myFile6.png"
>> invertedFileURL="myImages/myFileInverted6.png" legible="false"
>> amount="342132" />
>>                                        <keyingItem
>> fileURL="myImages/myFile7.png"
>> invertedFileURL="myImages/myFileInverted7.png" legible="true" amount="78400"
>> />
>>                                </keyingItems>
>>                        </exercise>
>>                </exercises>
>>        </functionalarea>
>> </data>
>>
>> //RECURSIVE FUNCTION:
>>
>> var totalItems:uint = 0;
>>
>> function countItems(xmlNode:XML):void
>> {
>>        var xmlChildren:XMLList = xmlNode.children();
>>        if(xmlChildren.length() > 0)
>>        {
>>                for each (var xmlNode:XML in xmlChildren)
>>                {
>>                        totalItems++;
>>                        countItems(xmlNode); //The recursive call
>>                }
>>        }
>> }
>>
>> countItems(myXML);
>>
>> //RESULT:
>> trace(totalItems);//Traces 20 - there are 20 nodes in the given XML from
>> the root down.
>>
>> Instead of the root, you could start farther in too if you wanted, i.e.:
>>
>> var exercisesXML:XML = myXML.functionalarea[0].exercises[0];
>> countItems(exercisesXML);
>> trace(totalItems); //traces 18 - there are 18 nodes from that level down.
>>
>> If that's not exactly what you need, it would seem the general concept
>> could be modified to fit your needs. Hope that helps,
>>
>>  Jason Merrill
>>  Instructional Technology Architect II
>>  Bank of America  Global Learning
>>
>>
>>
>>
>>
>> _______________________
>>
>>
>> -----Original Message-----
>> From: [email protected] [mailto:
>> [email protected]] On Behalf Of John Polk
>> Sent: Saturday, August 13, 2011 5:58 PM
>> To: Flash Coders List
>> Subject: Re: [Flashcoders] Simplify XML Call
>>
>> > From: Henrik Andersson <[email protected]>
>>
>> > To: Flash Coders List <[email protected]>
>> > Sent: Saturday, August 13, 2011 3:37 PM
>> > Subject: Re: [Flashcoders] Simplify XML Call
>> >
>> > There is still no eval function.
>>
>> I know there is no eval fn. Jason Merrill earlier wrote: "You just need a
>> recursive loop to do this.  So I would write a function that handles each
>> node level individually, adding to a class-level private property called
>> something like, _totalItems." I tried googling [as3 "recursive loop" xml
>> node] without much luck. Then I think I hit on what Jason was suggesting:
>>
>>             var x:*;
>>             x = xml.menu.item[whichItems[0]];
>>             var levelsLeft:int = level - 2;
>>             var q:int = 4;
>>             while(levelsLeft--)
>>             {
>>                 x = x.item[whichItems[q]];
>>                 q--;
>>             }
>>             trace('xxx', x.item.length());
>>
>> The problem is that for reasons that don't bear explaining I'm not ready
>> to test this beyond the first level today :-} But I think it (or some tweak)
>> should work (and I'll clean out that wildcard var).
>>
>> Thanks,
>> John
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>> ----------------------------------------------------------------------
>> This message w/attachments (message) is intended solely for the use of the
>> intended recipient(s) and may contain information that is privileged,
>> confidential or proprietary. If you are not an intended recipient, please
>> notify the sender, and then please delete and destroy all copies and
>> attachments, and be advised that any review or dissemination of, or the
>> taking of any action in reliance on, the information contained in or
>> attached to this message is prohibited.
>> Unless specifically indicated, this message is not an offer to sell or a
>> solicitation of any investment products or other financial product or
>> service, an official confirmation of any transaction, or an official
>> statement of Sender. Subject to applicable law, Sender may intercept,
>> monitor, review and retain e-communications (EC) traveling through its
>> networks/systems and may produce any such EC to regulators, law enforcement,
>> in litigation and as required by law.
>> The laws of the country of each sender/recipient may impact the handling
>> of EC, and EC may be archived, supervised and produced in countries other
>> than the country in which you are located. This message cannot be guaranteed
>> to be secure or free of errors or viruses.
>>
>> References to "Sender" are references to any subsidiary of Bank of America
>> Corporation. Securities and Insurance Products: * Are Not FDIC Insured * Are
>> Not Bank Guaranteed * May Lose Value * Are Not a Bank Deposit * Are Not a
>> Condition to Any Banking Service or Activity * Are Not Insured by Any
>> Federal Government Agency. Attachments that are part of this EC may have
>> additional important disclosures and disclaimers, which you should read.
>> This message is subject to terms available at the following link:
>> http://www.bankofamerica.com/emaildisclaimer. By messaging with Sender
>> you consent to the foregoing.
>>
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>> ----------------------------------------------------------------------
>> This message w/attachments (message) is intended solely for the use of the
>> intended recipient(s) and may contain information that is privileged,
>> confidential or proprietary. If you are not an intended recipient, please
>> notify the sender, and then please delete and destroy all copies and
>> attachments, and be advised that any review or dissemination of, or the
>> taking of any action in reliance on, the information contained in or
>> attached to this message is prohibited.
>> Unless specifically indicated, this message is not an offer to sell or a
>> solicitation of any investment products or other financial product or
>> service, an official confirmation of any transaction, or an official
>> statement of Sender. Subject to applicable law, Sender may intercept,
>> monitor, review and retain e-communications (EC) traveling through its
>> networks/systems and may produce any such EC to regulators, law enforcement,
>> in litigation and as required by law.
>> The laws of the country of each sender/recipient may impact the handling
>> of EC, and EC may be archived, supervised and produced in countries other
>> than the country in which you are located. This message cannot be guaranteed
>> to be secure or free of errors or viruses.
>>
>> References to "Sender" are references to any subsidiary of Bank of America
>> Corporation. Securities and Insurance Products: * Are Not FDIC Insured * Are
>> Not Bank Guaranteed * May Lose Value * Are Not a Bank Deposit * Are Not a
>> Condition to Any Banking Service or Activity * Are Not Insured by Any
>> Federal Government Agency. Attachments that are part of this EC may have
>> additional important disclosures and disclaimers, which you should read.
>> This message is subject to terms available at the following link:
>> http://www.bankofamerica.com/emaildisclaimer. By messaging with Sender
>> you consent to the foregoing.
>>
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to