incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Frishberg <fri...@gmail.com>
Subject Re: Fix to get DropDownList working on Mobile
Date Fri, 20 Jan 2012 00:01:12 GMT
Hey Tink,

I can't say for sure if I'll be here or not in May.  My current lease
expires in April, and if it's easy to find a short lease, I may stay a bit
longer.  Otherwise, I'll pack myself back to the states :-)  I'll
stay-tuned for the Spoon announcement and attempt to atleast make one
London flex user group meeting.  If I can't make anything, I'll try and
arrange some drinks for the PPMC members here.

Cheers,
Ryan

On Wed, Jan 18, 2012 at 8:07 AM, Tink <flex@tink.ws> wrote:

> On 18 Jan 2012, at 02:27, Jeffry Houser wrote:
>
>
>> The Flextras Mobile DropDownList extends the Flex DropDownList.   The
>> problems related to how the drop down opens and closes with mouse up and
>> mouse down events.  I had a lot of weird issues trying to get that to work.
>>  I ended up remapping everything to mouse click.
>>
>> This is how we got it working on mobile:
>>
>> 1) In partAdded, I added event listeners for [partRemoved removed said
>> listeners]:
>>
>>               dataGroup.addEventListener(**RendererExistenceEvent.**RENDERER_ADD,
>> dataGroup_rendererAddHandler_**Extended);
>>               dataGroup.addEventListener(**RendererExistenceEvent.**RENDERER_REMOVE,
>> dataGroup_**rendererRemoveHandler_**Extended);
>>
>> [These lines are 'from' the similar to what happens in the list class--up
>> the hierarchy.  The dataGroup adds event listeners for the
>> dataGroup_rendererAddHandler method which adds an event listener to a
>> **private** method item_mouseEventHandler.  I'm pretty sure the private
>> mouse event handler was the problem; but memory is hazy.
>>
>> 2) The dataGroup_rendererAddHandler_**Extended method is based on the
>> dataGroup_RendererAddHandler method.  Except I'm listening for the click
>> event.
>>
>>       protected function dataGroup_rendererAddHandler_**Extended(event:**
>> RendererExistenceEvent):void
>>       {
>>           var index:int = event.index;
>>           var renderer:IVisualElement = event.renderer;
>>
>>           if (!renderer)
>>               return;
>>
>>           renderer.addEventListener(**MouseEvent.CLICK,
>> item_clickHandler);
>>       }
>>
>>
>> 3) the item_ClickHandler makes use of the super methods for handling the
>> opening and closing the DropDownList:
>>
>>       protected function item_clickHandler(event:**MouseEvent):void{
>>           // this is a replacement for the mouse down handler;
>>           // so we do actualy want to run the mouse down handler code in
>> this mouse click event
>>           super.item_mouseDownHandler(**event);
>>
>>           // immediately call the mouse up handler; because it seems to
>> be holding off selection until the
>>           // mouse up event fires; which doesn't appear to happen
>>           super.mouseUpHandler(event);
>>       }
>>
>>
>> 4) And then make sure the mouse down handler does nothing:
>>
>>       override protected function item_mouseDownHandler(event:**
>> MouseEvent):void
>>       {
>>           // do nothing because mouse up and mouse down handlers don't
>> work quite right on mobile devices
>>           // rewrote all of this to use the click event
>>       }
>>
>>
>> I've had clients use our extended component both in web and mobile
>> projects.
>>
>> You can see our web sample: https://www.flextras.com/**
>> MobileComponents/Samples/**MobileDropDownList/<https://www.flextras.com/MobileComponents/Samples/MobileDropDownList/>
>> The default is like a traditional Flex DropDownList.
>> But, click the Change Renderer button and select Radio Button Renderer;
>> then select Change Skins and select Pop Up Skin 2.   that is my preferred
>> approach.
>>
>> We ended up adding a bunch of extra skin parts; and a handful of
>> ActionScript skin options; but I'd love to make the SDK handle the mobile /
>> touch use case a lot easier.
>>
>> I'll see if I can get something simple checked in either tomorrow or
>> Thursday.  Unfortunately today slipped by without me trying to figure out
>> my SVN access and all that.
>>
>> --
>> Jeffry Houser
>> Technical Entrepreneur
>> 203-379-0773
>> --
>> http://www.flextras.com?c=104
>> UI Flex Components: Tested! Supported! Ready!
>> --
>> http://www.theflexshow.com
>> http://www.jeffryhouser.com
>> http://www.asktheflexpert.com
>> --
>> Part of the DotComIt Brain Trust
>>
>
> Hey Jeffry
>
> I'm proposing we fix the bug in DropDownListBase.
>
> This fix requires 2 additional 'if' statements and 2 extra lines of code.
>
> It means the DropDownList will continue to work the same on desktop, but
> will also work on mobile.
>
> As with all Spark based Lists in Flex, users can specify a custom
> itemRenderer or custom skin.
>
> Tink
>
>
> P.S. Ryan, sorry I missed your note. I've been thinking of getting a
> special event together at LFPUG in May on 'The Future of Flex' and thought
> I'd see if I could get the London PPMC members down (you, me , Espen &
> Peter are all in London), although I might see If I can try and involve
> Spoon as well (see "Spoon Community Call Feb 2nd" thread). Are you still
> around in May, and you be up for that? Maybe I should create a separate
> thread.
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message