The question is how far to take this. Should every method in Effect be a separate interface? i.e. IPlayable, IReversable, IPausable, IStoppable, IResumable. That seems a bit over-the-top to me.
As IEffect currently stands, Parallel needs the methods implemented. Personally, I think Parallel should probably extend CompoundEffect which should implement reverse() stop() pause() and resume(). The only method which seems to be specific to Parallel as opposed to Sequence is play(). These seem to all be pretty standard functionality to Effects. > On Jan 23, 2017, at 7:11 AM, Alex Harui <aha...@adobe.com> wrote: > > On 1/22/17, 7:42 AM, "Yishay Weiss" <yishayj...@hotmail.com > <mailto:yishayj...@hotmail.com>> wrote: > >> Thanks Piotr and Alex. It’ll be an interesting exercise to see if this >> can be made into a strand. My issue with ParallelWithReverse is that >> Parallel already implements IEffect which has reverse(). What does that >> say about Parallel? Does it or does it not implement reverse()? If there >> were a way in AS3 to create an interface that extends multiple parents I >> would opt for having IEffect extends IReversible, IPausible, etc. and >> then creating classes that pick the interfaces they actually implement. >> As things stand, nothing seems like a clean implementation. >> >> >> >> In a similar way, making Parallel a strand would probably mean that it >> doesn’t implement IEffect because we don’t know in advance whether it >> actually implements reverse(), pause(), etc. >> > > If you want to look into making it more granular that's fine with me. > > > -Alex