Alex, consider the following, I use this all the time for composite
components that have /mediators/controllers listening to them;

public class GridGroup extends FeathersControl
{
    public static const EVENT_SELECTED_INDEX_CHANGE:String =
"selectedIndexChange";

    private var _selectedIndex:int = -1;

    public function get selectedIndex():int
    {
        return _selectedIndex;
    }

    public function set selectedIndex(value:int):void
    {
        if (_selectedIndex == value)
            return;
        _selectedIndex = value;
        dispatchEventWith(EVENT_SELECTED_INDEX_CHANGE, true,
_selectedIndex);
    }
}

A Starling robot legs Mediator example;

public class MasterScreenMediator extends CausticImportMediator
{
    private var view:MasterScreen;

    public function MasterScreenMediator()
    {
    }

    override public function preRegister():void
    {
        super.preRegister();

        addViewListener(GridGroup.EVENT_SELECTED_INDEX_CHANGE,
view_selectedIndexChangeHandler);
    }

    override public function setViewComponent(viewComponent:Object):void
    {
        super.setViewComponent(viewComponent);
        view = MasterScreen(viewComponent);
    }

    override public function preRemove():void
    {
        super.preRemove();
    }

    private function view_selectedIndexChangeHandler(event:Event,
selectedIndex:int):void
    {
        trace("Selected index " + selectedIndex);
    }
}

It's so clean, the point is having that extra mechanism of the 'data'
property working within the EventManger when it calls event handlers.

Mike



On Tue, May 19, 2015 at 5:56 AM, Michael Schmalle <teotigraphix...@gmail.com
> wrote:

> Eh yeah, excuse my ignorance about the gcc.
>
> Anyway the pool in Starling is for the Event class not getting
> instantiated all the time(EventManager).
>
> I keep forgetting to extend my scope to javascript impl.
>
> I'll be honest, I have spent the last week studying the code and stuff,
> the javascript part still hasn't fully clicked in my head. I completely
> understand the FlexJS composition framework now and how to make components
> BUT, where and how the javascript line is, is still bugging the crap out of
> my head(imagine fog).
>
> Maybe that wiki page on how you deal with layout that you said you were
> going to write might help me "get it". Let me know when you have that up.
>
> Mike
>
>
> On Mon, May 18, 2015 at 7:23 PM, Alex Harui <aha...@adobe.com> wrote:
>
>>
>>
>> On 5/18/15, 3:24 PM, "Michael Schmalle" <teotigraphix...@gmail.com>
>> wrote:
>> >I love the way Feathers and Starling do events, they use an Event pool
>> for
>> >one and have the data field on Event.
>> >
>> >So in my apps, you usually just had a class called MyEventType which has
>> >the constants tagged onto it. The;
>> >
>> >dispatchWithEvent(MyEventType.FOO_EVENT, true, myDataObject);
>> >
>> >Where the second parameter is bubbles.
>> >
>> >This works great, they even added functionality where the callback could
>> >receive the data in the second argument.
>> >
>> >What do you think about Event object pooling?
>>
>> I haven’t looked into it, but I didn’t get from your explanation what the
>> “pool” is.  On the JS side the component set we are writing is leveraging
>> Google Closure Library’s events and I would imagine that anyone’s JS code
>> is going to leverage the browser’s native events, so IMO, anything we do
>> on the AS side should mirror that.
>>
>> On the other hand, lots of events in Flex don’t really need the full DOM
>> Event capability so I am open to having two event systems if folks think
>> they can handle it.
>>
>> -Alex
>>
>>
>

Reply via email to