Very cool this SCXML stuff. checked out the w3c docs. BTW, states are incorporated into Flex 2. They're not in the alpha, but I saw it demonstrated at MAX. There is a <mx:State> tag that wraps an arbitrary chunk of mxml. You can have state transition effects, etc. I doubt this is embracing SCXML or anything that ambitious, but before building the FSM, I'd want to see what Flex 2 holds and build upon it.
I'm pretty interested in creating an FSM architecture for Flex, myself. Drop by my site and leave me a line if you're interested in chatting offline: futurescale.com -=Cliff> --- In flexcoders@yahoogroups.com, Aldo Bucchi <[EMAIL PROTECTED]> wrote: > > Hi flexies, > > Does anyone know of a good State Machine implementation in actionscript? > One with history, concurrent states, joins, splits ( forks ), etc? > > I have used Kaye's ( www.flashsim.com ), ported part of Miro Samek's > method based machine, modified a compiler (CHSM), and finally went > half the way to creating my own SCXML interpreter. > > So... why ask now??? > well, because after all this work it has become evident that there is > so much space for different designs that hearing other people's > practical experiences is, well, a very practical way to take some > decisions... like the following for instance: > > - The state machine declaration ( states and transitions ) can be > supplied in several different ways > -- external XML declarations ( could be SCXML for example. Note that > this approach introduces some complexity due to the async loading > "state" ) > -- inline XML declarations. > -- MXML declaration ( unfortunately we cannot provide an id for a > nested faceless component in flex 1.5) > -- Actionscript declaration ( instantiating classes ) > -- with a class hierarchy ( a la samek ) > > - How do we scope state and transition ids? Per state machine? per > superstate? do we use paths? > > - There is also the debate on giving each state it's own controller ( > using class inheritance to override the superstate's controller ) or > using one central controller querying the machine. > > - How to declare event handlers ( in the same state/transition > declaration or later on by hooking them with listeners ) > > - how do we implement guard conditions... are they necessary / > benefitial at all? why not just provide hooks for complex logic then. > > - and Finally, how do we feed events to the machine... should we be > able to call transitions directly? > > - MXML wrappers can be created to allow the use of binding and inline > event declarations > <fsm:StateProxy id="openState" stateMachine="{sm1}" stateName="open" > enter="trace('entering!'+event.target.name)" exit=""/> > <mx:Button label="close" enabled="{openState.active}"/> > Should we allow this without limits? > > > Pfff. write one line of code on this domain and you will see what I > mean. State machines are so broad and powerful that it is hard to see > the best way to fit them into flex at a glimpse. > > Help / observations / links / ideas appreciated. > > Man, we could even create a complete osflash project devoted to state machines. > ( perhaps I will if there is enough interest. let me know ) > > Best, > Aldo > > -- > ::::: Aldo Bucchi ::::: > mobile (56) 8 429 8300 > -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/