Hello Kenneth and others,

On Thu, Aug 19, 2010 at 9:05 PM, Kenneth Kawamoto
<kennethkawam...@gmail.com> wrote:
> trace("Full games: " + games.game.(user.length() == 3).length());
> trace("Vacant games: " + games.game.(user.length() < 3).length());

thank you - now my Flash code is working,
but my Flex code is still not working and
I've already spent several days on it. Here is
the test case (a copy and screenshot are at
http://stackoverflow.com/questions/3517298/flex-listening-for-collectionevent-in-custom-component
)

Games.mxml (my component, trying to use e4x):

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"; xmlns:my="*">

        <mx:Script>
                <![CDATA[
                        private var _xlist:XMLList;
                        
                        public function get xlist():XMLList {
                                return _xlist;
                        }
                        
                        public function set xlist(x:XMLList):void {
                                _xlist = x;
                                trace("111: " + _xlist.toString());
                                trace("222: " + _xlist.game.toString());
                                list.dataProvider = x;
                                all.text = "All games: " + _xlist.game.length();
                                full.text = "Full games: " + 
_xlist.game.(user.length() == 3).length();
                                vacant.text = "Vacant games: " + 
_xlist.game.(user.length() < 3).length();
                        }
                        
                        private function gameLabel(item:Object):String {
                                return "game: " + it...@label;
                        }
                ]]>
        </mx:Script>
        
        <mx:Label id="all" text="All games"/>
        <mx:Label id="full" text="Full games"/>
        <mx:Label id="vacant" text="Vacant games"/>
        
        <mx:List id="list" labelFunction="gameLabel"/>
        
</mx:VBox>

MyTest.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; xmlns:my="*">
        <mx:Script>
                <![CDATA[
                        import mx.events.*;
                        
                        private function changeXML1():void {
                                games = <games>
                                                        <game label="1">
                                                                <user/>
                                                                <user/>
                                                                <user/>
                                                        </game>
                                                        <game label="2">
                                                                <user/>
                                                                <user/>
                                                        </game>
                                                        <game label="3">
                                                                <user/>
                                                                <user/>
                                                                <user/>
                                                        </game>
                                                </games>;                       
                
                        }

                        private function changeXML2():void {
                                games = <games>
                                                        <game label="A">
                                                                <user/>
                                                                <user/>
                                                                <user/>
                                                        </game>
                                                        <game label="B">
                                                                <user/>
                                                                <user/>
                                                        </game>
                                                        <game label="C">
                                                        </game>
                                                </games>;                       
                
                        }
                ]]>
        </mx:Script>

        <mx:XML id="games">
                <games>
                        <game label="X">
                                <user/>
                                <user/>
                        </game>
                        <game label="Y">
                                <user/>
                                <user/>
                        </game>
                </games>
        </mx:XML>
        
        <mx:Button label="Change XML 1" click="changeXML1()"/>
        <mx:Button label="Change XML 2" click="changeXML2()"/>
        <my:Games xlist="{games.game}"/>
</mx:Application>

It prints empty list for the _xlist.game.toString():

111: <game label="X">
  <user/>
  <user/>
</game>
<game label="Y">
  <user/>
  <user/>
</game>
222:

Does anybody please have an idea why?

Regards
Alex
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to