Ok, the customer is always right.

"...which instance of a repeater component was clicked..."

This is not difficult if you repeat a custom component.  See snippets below.

Tracy

Goal: Display a list of items using a complex display for each item, and have 
each of those items behave like a menu element and respond to a click anywhere 
on the item by running a handler function.

One solution is to use a Repeater with a custom component

In the main app or component, declare the Repeater, and the click handler 
function.
<mx:Application ...
<mx:Script><![CDATA[
  import MyRepeaterItem;
  ...
  
private function onRPItemClick(oEvent:Event):void
{
    var xmlItem:XML = XML(oEvent.target);

}//onRPItemClick
]]></mx:Script>
  <mx:VBox ...>
    <mx:Repeater id="rp" dataProvider="{_xmlData}" ...>
      <!-- Note we pass in the entire currentItem, and define a click handler  
-->
      <MyRepeaterItem xmlItem="{rp.currentItem}" 
itemClick="onRPItemClick(event)" .../>
    </mx:Repeater
  </mx:VBox>
</mx:Application>

And in the component, MyRepeaterItem.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox mouseChildren="false" buttonMode="true" click="onClick(event)" > 
  <!-- The metadata tag below allows us to define an itemClick handler in mxml, 
as in the code above -->
  <mx:Metadata>
     [Event(name="itemClick", type="flash.events.Event")]
  </mx:Metadata>
<mx:Script><![CDATA[
  [Bindable]private var _xmlItem:XML;
  
  /** Setter function */
  public function set xmlItem(xml:XML):void  
  {
    _xmlItem = xml;
    //do any special, non-bound ui stuff you want
  }//set xmlItem

  /** Getter function */  
  public function get xmlItem():XML  
  {
    return _xmlItem;
  }//get xmlItem


  /** Outer VBox Click handler function */  
  private function onClick():void 
  {
    dispatchEvent(new Event("itemClick",false); //we do not need/want this 
event to bubble
  }//onClick

]]></mx:Script>
  <!-- Now declare the Item UI -->
  <mx:Text id="lbDescription" text="[EMAIL PROTECTED]" width="100%" 
height="100%" />
</mx:HBox>



  
________________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Amy
Sent: Tuesday, October 30, 2007 2:17 PM
To: [email protected]
Subject: [flexcoders] Re: htmlText in text that originates in XML

--- In [email protected], "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> I encode it programatically.

They have requested that I avoid creating an editor for them if at all 
possible, since it involves a lot of other things I've found to be 
quite problematic in Flex (such as knowing which instance of a repeater 
component was clicked).

-Amy
 

Reply via email to