Ooops. That should have been MyImageComponent.mxml instead of MyCustomComponent.mxml.
BTW, where are you from? I am an ex pat Kiwi now living in the states. --- In [email protected], "valdhor" <valdhorli...@...> wrote: > > The way I would do it is to have a click event listener in the custom > component that would dispatch a custom bubbling event that the > application can listen for and handle. Modified example follows: > > Application: > <?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="vertical" verticalAlign="top" > horizontalAlign="center" > backgroundGradientColors="[0x000000,0x323232]" paddingTop="0" > xmlns:components = "*" initialize="onInit()"> > <mx:Script> > <![CDATA[ > import mx.controls.Alert; > > [Bindable] private var dp:Array = [ > {text: "First", image: "helmet"}, > {text: "Second", image: "helmet"}, > {text: "Third", image: "helmet"}, > {text: "Fourth", image: "helmet"}, > {text: "Fifth", image: "helmet"} > ]; > > private function onInit():void > { > > addEventListener(MyCustomEvent.WHAT_YOU_WANT_TO_USE_AS_AN_EVENT_CONSTANT\ > , MyCustomEventHndler); > } > > private function > MyCustomEventHndler(event:MyCustomEvent):void > { > // Do what you need to here > event.stopImmediatePropagation(); > Alert.show(event.currentItem.text); > } > ]]> > </mx:Script> > <mx:HBox> > <mx:Repeater id="myImages" dataProvider="{dp}"> > <components:MyImageComponent > theItem="{myImages.currentItem}"/> > </mx:Repeater> > </mx:HBox> > </mx:Application> > > MyCustomComponent.mxml > <?xml version="1.0" encoding="utf-8"?> > <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" > horizontalAlign="center" width="200" height="200" > creationComplete="onCreationComplete()"> > <mx:Script> > <![CDATA[ > public var theItem:Object; > [Bindable] private var imageLocation:String; > > private function onCreationComplete():void > { > thisText.text = theItem.text; > thisImage.source = "images/" + theItem.image + ".png"; > } > > private function handleClick(event:MouseEvent):void > { > event.stopImmediatePropagation(); > dispatchEvent(new > MyCustomEvent(MyCustomEvent.WHAT_YOU_WANT_TO_USE_AS_AN_EVENT_CONSTANT, > theItem)); > } > ]]> > </mx:Script> > <mx:Image id="thisImage" rollOverEffect="{glowImage}" > rollOutEffect="{unglowImage}" > autoLoad="true" click="handleClick(event)"/> > <mx:Text id="thisText" fontSize="24" click="handleClick(event)"/> > <mx:Glow id="glowImage" duration="1000" alphaFrom="1.0" > alphaTo="0.3" blurXFrom="0.0" > blurXTo="50.0" blurYFrom="0.0" blurYTo="50.0" color="0x22A050"/> > <mx:Glow id="unglowImage" duration="1000" alphaFrom="0.3" > alphaTo="1.0" blurXFrom="50.0" > blurXTo="0.0" blurYFrom="50.0" blurYTo="0.0" color="0x3380DD"/> > </mx:VBox> > > MyCustomEvent.as > package > { > import flash.events.Event; > > public class MyCustomEvent extends Event > { > public static const > WHAT_YOU_WANT_TO_USE_AS_AN_EVENT_CONSTANT:String = "blahblah"; > > private var _currentItem:Object; > > public function MyCustomEvent(type:String, currentItem:Object, > bubbles:Boolean=true, cancelable:Boolean=true) > { > super(type, bubbles, cancelable); > _currentItem = currentItem; > } > > public override function clone():Event > { > return new MyCustomEvent(type, _currentItem, bubbles, > cancelable); > } > > public function get currentItem():Object {return _currentItem;} > > public function set currentItem(currentItem:Object):void > {_currentItem = currentItem;} > } > } > > > > HTH > > > > Steve > > > > > --- In [email protected], "James" <garymoorcroft_ict@> > wrote: > > > > Basically what I mean is I previously had a combo box populated by an > array collection that contained the property categoryid and a tilelist > populated by an array collection that also contained the property > category id. So therefore when a user selected an item in the tilelist > only the items that had a categoryid which matched the category id of > that selected item were shown within the tilelist. Is this possible to > implement into this new example? > > > > --- In [email protected], "valdhor" valdhorlists@ wrote: > > > > > > I also looked at TourDeFlex to get some ideas. > > > > > > Here is a small example that I created that shows how to create a > custom > > > component as well as do the Glow effect on an image. (I got the > image > > > from downloading the file inside TourDeFlex under Glow): > > > > > > Application: > > > <?xml version="1.0" encoding="utf-8"?> > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > > > layout="vertical" verticalAlign="top" > > > horizontalAlign="center" > > > backgroundGradientColors="[0x000000,0x323232]" paddingTop="0" > > > xmlns:components = "*"> > > > <mx:Script> > > > <![CDATA[ > > > [Bindable] private var dp:Array = [ > > > {text: "First", image: "helmet"}, > > > {text: "Second", image: "helmet"}, > > > {text: "Third", image: "helmet"}, > > > {text: "Fourth", image: "helmet"}, > > > {text: "Fifth", image: "helmet"} > > > ]; > > > ]]> > > > </mx:Script> > > > <mx:HBox> > > > <mx:Repeater id="myImages" dataProvider="{dp}"> > > > <components:MyImageComponent > > > theItem="{myImages.currentItem}"/> > > > </mx:Repeater> > > > </mx:HBox> > > > </mx:Application> > > > > > > MyImageComponent.mxml > > > <?xml version="1.0" encoding="utf-8"?> > > > <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" > > > horizontalAlign="center" width="200" height="200" > > > creationComplete="onCreationComplete()"> > > > <mx:Script> > > > <![CDATA[ > > > public var theItem:Object; > > > [Bindable] private var imageLocation:String; > > > > > > private function onCreationComplete():void > > > { > > > thisText.text = theItem.text; > > > thisImage.source = "images/" + theItem.image + > ".png"; > > > } > > > ]]> > > > </mx:Script> > > > <mx:Image id="thisImage" rollOverEffect="{glowImage}" > > > rollOutEffect="{unglowImage}" > > > autoLoad="true"/> > > > <mx:Text id="thisText" fontSize="24"/> > > > <mx:Glow id="glowImage" duration="1000" alphaFrom="1.0" > > > alphaTo="0.3" blurXFrom="0.0" > > > blurXTo="50.0" blurYFrom="0.0" blurYTo="50.0" > color="0x22A050"/> > > > <mx:Glow id="unglowImage" duration="1000" alphaFrom="0.3" > > > alphaTo="1.0" blurXFrom="50.0" > > > blurXTo="0.0" blurYFrom="50.0" blurYTo="0.0" > color="0x3380DD"/> > > > </mx:VBox> > > > > > > > > > BTW. I only found one png image so I used it repeatedly. Also, I > have > > > only one size. You should make multiple sizes and place them in the > > > images folder. You should also set the width and height inside the > > > custom component depending on the size you want (I have them hard > coded > > > in my example). Then you would pass a size to the custom component > by > > > exposing a public variable and use a switch statement to select the > > > correct size. > > > > > > HTH > > > > > > > > > > > > > > > Steve > > > > > > > > > > > > --- In [email protected], "valdhor" <valdhorlists@> wrote: > > > > > > > > OK, I did some googling and this looks like exactly what you are > > > after... > > > > > > > > http://flexaired.blogspot.com/2008/07/sample-image-tile-list.html > > > > > > > > --- In [email protected], "James" garymoorcroft_ict@ > wrote: > > > > > > > > > > Yes but it's the glow effect that I require. when each item is > > > hovered over it needs to glow rather than just having the blue > themed > > > square. Have you got any idea how to do this? > > > > > > > > > > --- In [email protected], "dannyvenier" <dannyvenier@> > > > wrote: > > > > > > > > > > > > Why not use a tileList or if spark, a List with tile layout. > You > > > can use a custom itemrenderer which can re-render when additional > > > buttons are added and in rendering, can determine the optimum size > based > > > on running an algorithm on your dataprovider. There are all sorts > of > > > edge conditions to worry about (what if the total text width exceeds > > > that of your container etc., etc.., but those have to be dealt with > in > > > any case, and I imagine you need a custom renderer anyway, to build > your > > > list items. > > > > > > > > > > > > > > > > > > > > > > > > --- In [email protected], "James" > <garymoorcroft_ict@> > > > wrote: > > > > > > > > > > > > > > I'm lost as to what component to use for navigation within > my > > > application. Across the top of my app I want something which > > > horizontally displays a list of categories which the user can click > to > > > select. This is fine if I use a tilelist but I also want to allow my > > > client to add and remove categories and for the width of the > component > > > to adjust so that new categories fit in but it seems impossible to > apply > > > <fit to content> to a tilelist the way you can to a hbox which > obviously > > > means scrollbars will appear and if you switch the scroll policy off > > > this simply means any added categories won't be visible if they are > past > > > the set width. > > > > > > > > > > > > > > If a hbox had a selecteditem property that would be perfect. > Is > > > there any such way of getting a component to work like this? > > > > > > > > > > > > > > > > > > > > > > > > > > > >

