It wont accept your suggestions Severity and Description Path Resource Location Creation Time Id 1120: Access of undefined property Panelcreatemealitem. /src Main.mxml line 105 1246801954900 468962
--- In [email protected], "Tim Hoff" <timh...@...> wrote: > > > Wow, I've got to say; "What a mess." However, you can get it to work > with the following changes: > > [Bindable] > private var customMeals:XMLListCollection = new XMLListCollection(); > > > > // addToMeal event Handler > private function addToMealHandler(event:Event):void > { > customMeals.addItem((event.target as > Panelcreatemealitem).mealDetails); > Alert.show(customMeals.toString()); > } > > You have some naming conflicts and, since you're dealing with xml, > you'll need to use an XMLListCollection; instead of an ArrayCollection. > > -TH > > --- In [email protected], "Jason B" <nospam@> wrote: > > > > Heres my three mxml files two of which are under the com/ folder and > get imported...hope that helps > > > > > > <?xml version="1.0" encoding="utf-8"?> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="vertical" > > creationComplete="init()" styleName="plain" > xmlns:nutrition="com.nutrition.*" > > paddingLeft="10" paddingTop="10" paddingRight="10" paddingBottom="10"> > > > > <mx:Script> > > <![CDATA[ > > import mx.collections.ArrayCollection; > > import mx.collections.ICollectionView; > > import mx.collections.XMLListCollection; > > import com.nutrition.MealItem; > > import mx.controls.Alert; > > import mx.rpc.events.FaultEvent; > > import mx.rpc.events.ResultEvent; > > import mx.rpc.http.HTTPService; > > // initialize > > private function init():void > > { > > //load calories > > httpservice_load("/main.php/flexnutrition/loadcalories", > this["loadcaloriesResultHandler"]); > > > > hsNutrition.send(); > > addEventListener('addToMeal', addToMealHandler); > > addEventListener('removeMeal', removeMealHandler); > > addEventListener('learnAboutThis', learnaboutthisswf); > > > > > > > > } > > > > private function httpservice_load(url_src:String, > resulthandler:Function):void{ > > > > httpService.url = url_src; > > > > //var tmp:String = resulthandler.toString(); > > //if(tmp != "none") > > httpService.addEventListener(ResultEvent.RESULT, resulthandler); > > httpService.send(); > > } > > > > private function learnaboutthisswf(event:Event):void{ > > vfc_guy.load("/uploads/swf/" + loadswf_var); > > > > } > > > > [Bindable] > > private var nutritionData:XML; > > [Bindable] > > private var maindata:XML; > > [Bindable] > > public var loadswf_var:String; > > [Bindable] > > public var createmeals_loadswf_var:String; > > > > //load all calories for main meals > > private function loadcaloriesResultHandler(event:ResultEvent):void > > { > > maindata = event.result as XML; > > vfc_guy.load("/uploads/swf/" + maindata.swf); > > } > > > > // nutrition result handler > > private function nutritionResultHandler(event:ResultEvent):void > > { > > nutritionData = event.result as XML; > > } > > // nutrition fault handler > > private function nutritionFaultHandler(event:FaultEvent):void > > { > > Alert.show(event.toString()); > > } > > > > // create breakfast > > private function createBreakfast():void > > { > > vsMain.selectedIndex = 1; > > plantype = 'Breakfast'; > > } > > // create lunch > > private function createLunch():void > > { > > vsMain.selectedIndex = 1; > > plantype = 'Lunch'; > > } > > // create dinner > > private function createDinner():void > > { > > vsMain.selectedIndex = 1; > > plantype = 'Dinner'; > > } > > > > [Bindable] > > private var plantype:String; > > > > [Bindable] > > private var customMeals:ArrayCollection = new ArrayCollection; > > > > // addToMeal event Handler > > private function addToMealHandler(event:Event):void > > { > > trace(event.target); > > //customMeals.addItem((event.target as mealitem).mealDetails); > > Alert.show(event.toString()); > > > > } > > > > // removeMeal event Handler > > private function removeMealHandler(event:Event):void > > { > > customMeals.removeItemAt(ls.selectedIndex); > > } > > > > ]]> > > </mx:Script> > > > > <mx:HTTPService id="hsNutrition" > url="/main.php/flexnutrition/nutritioncal" > > result="nutritionResultHandler(event)" > > fault="nutritionFaultHandler(event)" resultFormat="e4x"/> > > > > <mx:HTTPService id="httpService" url="" resultFormat="e4x"/> > > > > <mx:Label id="totalcalories" text="{'Today\'s Meal Plan is based on a > ' + maindata.totalcalories + ' Calorie Diet'}" fontWeight="bold" > fontSize="18"/> > > > > <!--mx:Button label="Print Meal Menu" /--> > > > > <mx:ViewStack id="vsMain" width="100%" height="100%"> > > > > <mx:Canvas id="nutrition_canvas" width="100%" height="100%"> > > > > <mx:SWFLoader id="vfc_guy" source="" height="400" width="400" > autoLoad="true" x="700" y="100" /> > > > > <mx:HBox width="100%" height="100%"> > > > > <mx:VBox width="40%" height="100%"> > > > > <nutrition:MealPanel id="pnlBreakfast" > meal="{nutritionData.breakfast}" > > title="Breakfast : Please select one meal from > below({maindata.breakfast} Cal Goal)"/> > > > > <mx:HBox horizontalCenter="right"> > > <mx:Button label="Create your own Breakfast" > click="createBreakfast()"/> > > </mx:HBox> > > > > > > <nutrition:MealPanel id="pnlSnack1" meal="{nutritionData.snack1}" > > title="Snack : Please select one snack from below({maindata.snack1} > Cal Goal)"/> > > <!--mx:Button label="Create your own Lunch" click="createLunch()"/--> > > > > <nutrition:MealPanel id="pnlLunch" meal="{nutritionData.lunch}" > > title="Lunch : Please select one meal from below({maindata.lunch} Cal > Goal)"/> > > > > <nutrition:MealPanel id="pnlSnack2" meal="{nutritionData.snack2}" > > title="Snack : Please select one snack from below({maindata.snack2} > Cal Goal)"/> > > <!--mx:Button label="Create your own Dinner" > click="createDinner()"/--> > > > > <nutrition:MealPanel id="pnlDinner" meal="{nutritionData.dinner}" > > title="Dinner : Please select one meal from below({maindata.dinner} > Cal Goal)"/> > > > > <nutrition:MealPanel id="pnlSnack3" meal="{nutritionData.snack3}" > > title="Snack : Please select one snack from below({maindata.snack3} > Cal Goal)"/> > > </mx:VBox> > > > > > > </mx:HBox> > > </mx:Canvas> > > > > > > <mx:HBox width="100%" height="100%"> > > > > <mx:VBox width="30%" height="100%"> > > <mx:HBox> > > <mx:Label text="{'My Custom ' + plantype}"/> > > > > </mx:HBox> > > > > <mx:List id="ls" dataProvider="{customMeals}" width="100%"> > > <mx:itemRenderer> > > <mx:Component> > > <mx:VBox> > > <mx:Image width="100" height="100"/> > > <mx:Button label="Remove" click="dispatchEvent(new Event('removeMeal', > true))"/> > > <mx:Label text="{data.serving}"/> > > </mx:VBox> > > </mx:Component> > > </mx:itemRenderer> > > </mx:List> > > </mx:VBox> > > > > <mx:VBox width="100%" height="100%"> > > > > <!--mx:Label text="Please select ONE ITEM from list below"/--> > > <mx:ViewStack width="40%" height="410" borderStyle="inset" > borderThickness="2" id="vsCreateMeals"> > > > > <mx:VBox > > > <nutrition:Panelcreatemeal id="pnlCreateBreakfast" > meal="{nutritionData.breakfast}"/> > > </mx:VBox> > > > > <mx:VBox > > > <nutrition:Panelcreatemeal id="pnlCreateLunch" > meal="{nutritionData.lunch}"/> > > </mx:VBox> > > > > <mx:VBox > > > <nutrition:Panelcreatemeal id="pnlCreateDinner" > meal="{nutritionData.dinner}"/> > > </mx:VBox> > > > > </mx:ViewStack> > > <mx:HBox> > > <mx:Button label="Save" click="vsMain.selectedIndex = 0;"/> > > <mx:Button label="Cancel" click="vsMain.selectedIndex = 0;"/> > > </mx:HBox> > > > > </mx:VBox> > > > > > > </mx:HBox> > > > > </mx:ViewStack> > > > > </mx:Application> > > > > > > > > > > > > <?xml version="1.0" encoding="utf-8"?> > > <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" > height="390" > > borderThicknessLeft="0" borderThicknessRight="0" > borderThicknessBottom="0" > > dropShadowEnabled="false" > > horizontalAlign="center" > xmlns:containers="com.dougmccune.containers.*" title="Select An Item > from below"> > > > > <mx:Script> > > <![CDATA[ > > //import com.createmealPanel; > > > > [Bindable] > > private var _meal:XMLList; > > > > public function set meal(value:XMLList):void > > { > > if(value) > > { > > _meal = value; > > createContainers(); > > } > > } > > > > private function createContainers():void > > { > > for each(var item:Object in _meal.itemdata) > > { > > if(item.available == "yes") > > { > > var mealitem:Panelcreatemealitem = new Panelcreatemealitem; > > coverflow.addChild(mealitem); > > mealitem.mealDetails = item; > > } > > } > > } > > ]]> > > </mx:Script> > > > > <containers:CoverFlowContainer id="coverflow" width="100%" > height="100%" > > horizontalGap="1" borderStyle="inset" backgroundColor="0xFFFFFF" > > segments="9" reflectionEnabled="true"/> > > > > <mx:HBox> > > <mx:Button label="item 1" > click="parentApplication.vsCreateMeals.selectedIndex=0;"/> > > <mx:Button label="side item 1" > click="parentApplication.vsCreateMeals.selectedIndex=1;"/> > > <mx:Button label="side item 2" > click="parentApplication.vsCreateMeals.selectedIndex=2;"/> > > </mx:HBox> > > </mx:Panel> > > > > > > > > > > <?xml version="1.0" encoding="utf-8"?> > > <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="310" > height="320" > > title="{mealDetails.title}" horizontalAlign="center"> > > > > > > <mx:Metadata> > > [Event(name="addToMeal")] > > [Event(name="learnAboutThis")] > > </mx:Metadata> > > > > <mx:Script> > > <![CDATA[ > > import mx.controls.Alert; > > > > [Bindable] > > public var mealDetails:Object; > > > > > > private function calldispatch():void { > > parentApplication.createmeals_loadswf_var = mealDetails.swf; > > dispatchEvent(new Event('learnAboutThis', true)); > > > > } > > > > ]]> > > </mx:Script> > > > > <mx:Image source="{'/uploads/nutrition/' + mealDetails.imgsource }" > width="285" height="159"/> > > > > <mx:Label text="{mealDetails.serving}"/> > > > > <mx:Button label="Add to Meal" click="dispatchEvent(new > Event('addToMeal', true))"/> > > > > <mx:Button label="Learn About This" click="calldispatch()"/> > > > > </mx:Panel> > > > > > > > > --- In [email protected], Sam Lai samuel.lai@ wrote: > > > > > > It seems like wherever this code is - > > > > > > [Bindable] > > > private var customMeals:ArrayCollection = new ArrayCollection; > > > > > > //throws error on this line > > > customMeals.addItem((event.target as mealitem).mealDetails); > > > > > > event.target is actually the panel containing the 'create meal item' > > > button, as opposed to the mealitem itself. Can you post some more of > > > the script and MXML for that part? > > > > > > The src folder is empty for me too in the ZIP file. > > > > > > 2009/7/2 Jason B nospam@: > > > > yes heres the results > > > > > "Main0.vsMain.HBox8.VBox968.vsCreateMeals.VBox971.pnlCreateBreakfast.cov\ > erflow.Panelcreatemealitem1006" > > > > > > > > How can I access the object data, it's in a file thats under the > folder /com/nutrition/file.mxml > > > > > > > > > > > > > > > > --- In [email protected], Sam Lai <samuel.lai@> wrote: > > > >> > > > >> I'd add a trace statement just before it to see what type of > object > > > >> event.target is - it could be that the target is the UI > component, and > > > >> not the data object. > > > >> > > > >> //throws error on this line > > > >> trace(event.target); > > > >> customMeals.addItem((event.target as mealitem).mealDetails); > > > >> > > > >> 2009/7/2 Jason B <nospam@>: > > > >> > I've got an problem when the user clicks on button "Add to > Meal" it throws an error because it can't seem to reference the data in > mealDetails object inside the com/ directory? > > > >> > > > > >> > I'm trying to add the item to the list control. > > > >> > > > > >> > I have the code located here in case you want more details > > > >> > http://files.getdropbox.com/u/228472/mealsflex.zip > > > >> > > > > >> > > > > >> > [Bindable] > > > >> > private var customMeals:ArrayCollection = new ArrayCollection; > > > >> > > > > >> > //throws error on this line > > > >> > customMeals.addItem((event.target as mealitem).mealDetails); > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > <?xml version="1.0" encoding="utf-8"?> > > > >> > <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="310" > height="320" > > > >> > title="{mealDetails.title}" horizontalAlign="center"> > > > >> > > > > >> > > > > >> > <mx:Metadata> > > > >> > [Event(name="addToMeal")] > > > >> > [Event(name="learnAboutThis")] > > > >> > </mx:Metadata> > > > >> > > > > >> > <mx:Script> > > > >> > <![CDATA[ > > > >> > import mx.controls.Alert; > > > >> > > > > >> > [Bindable] > > > >> > public var mealDetails:Object; > > > >> > > > > >> > > > > >> > private function calldispatch():void { > > > >> > > parentApplication.createmeals_loadswf_var = mealDetails.swf; > > > >> > dispatchEvent(new > Event('learnAboutThis', true)); > > > >> > > > > >> > } > > > >> > > > > >> > ]]> > > > >> > </mx:Script> > > > >> > > > > >> > <mx:Image source="{'/uploads/nutrition/' + > mealDetails.imgsource }" width="285" height="159"/> > > > >> > > > > >> > <mx:Label text="{mealDetails.serving}"/> > > > >> > > > > >> > <mx:Button label="Add to Meal" click="dispatchEvent(new > Event('addToMeal', true))"/> > > > >> > > > > >> > <mx:Button label="Learn About This" > click="calldispatch()"/> > > > >> > > > > >> > </mx:Panel> > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > ------------------------------------ > > > >> > > > > >> > -- > > > >> > Flexcoders Mailing List > > > >> > FAQ: > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > > > >> > Alternative FAQ location: > https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-\ > 1e62079f6847 > > > >> > Search Archives: > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups > Links > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > > > > > > > > > > > > > > > > > ------------------------------------ > > > > > > > > -- > > > > Flexcoders Mailing List > > > > FAQ: > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > > > > Alternative FAQ location: > https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-\ > 1e62079f6847 > > > > Search Archives: > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups > Links > > > > > > > > > > > > > > > > > > > > > >

