[
https://issues.apache.org/jira/browse/FLEX-34818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14493916#comment-14493916
]
Mihai Chira commented on FLEX-34818:
------------------------------------
Thank you for posting the workaround, dimitri. I'm not an expert with FlexUnit,
but if you supply a patch to add this information, I am happy to apply it to
SequenceCaller. This way it will appear in the documentation once the next
version of FlexUnit is released.
> FlexUnit SequenceCaller prevent function call on objet that delagate event
> dispatching.
> ---------------------------------------------------------------------------------------
>
> Key: FLEX-34818
> URL: https://issues.apache.org/jira/browse/FLEX-34818
> Project: Apache Flex
> Issue Type: Improvement
> Components: FlexUnit
> Affects Versions: FlexUnit 4.2
> Reporter: dimitri kara
> Priority: Minor
> Labels: flexunit, fluint
> Fix For: FlexUnit 4.3
>
> Original Estimate: 10m
> Remaining Estimate: 10m
>
> The Signature of SequenceCaller type the target of the call as
> IEventDispatcher:
> SequenceCaller(target:IEventDispatcher, method:Function, args:Array = null,
> argsFunction:Function = null)
> But the IEventDispatcher type on the parameter/field prevents us from using
> the SequenceCaller on objects that *delegate the event dispatching*, and is a
> real problem with Robotlegs-like architecture where Actors (models/services)
> are not IEventDispatcher but use a common EventDispatcher object as an event
> bus.
> The assumption was made that you would only use Sequence on IEventDispatcher
> object, but you could listen on an EventDispatcher object while making call
> on another object that with use the first one to dispatch events.
> Example of wanted behavior (with FileService not implementing
> IEventDispatcher):
> [Test]
> public function TestFileService():void
> var service:IFileService=new FileService();
> var dispatcher:IEventDispatcher=new EventDispatcher;
> service.dispatcher=dispatcher;
> var sequence:SequenceRunner = new SequenceRunner( this );
> sequence.addStep(new *SequenceCaller*( *service* ,
> lervice.loadDefaultFile));
> sequence.addStep( new SequenceWaiter( *dispatcher* ,FileEvent.LOADED
> , 100 ) );
> ...
> }
> [Update]
> I found a *workaround*. You can pass null as the target of the SequenceCaller
> and it will be ok.
> So the correct code is:
> [Test]
> public function TestFileService():void
> var service:IFileService=new FileService();
> var dispatcher:IEventDispatcher=new EventDispatcher;
> service.dispatcher=dispatcher;
> var sequence:SequenceRunner = new SequenceRunner( this );
> sequence.addStep(new SequenceCaller( *null* , lervice.loadDefaultFile));
> sequence.addStep( new SequenceWaiter( dispatcher ,FileEvent.LOADED ,
> 100 ) );
> ...
> }
> It may help other people like me if this is added to the Docs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)