Hi Alex, the issue comes from beads modifying strand className. This can be seen mixing states with jewel layouts. Jewel Layouts add or removes class names in the strand at runtime. Since, as you describe in the example, those changes are not part of some state (i.e: className.normal or className.someState, for example), the current class name is not stored anywhere, so when you change the state and comes back, Royale is not capable of recreate the right strand className
You can see the issue in action if you compile the blog example about states [1] https://github.com/apache/royale-asjs/tree/develop/examples/blog/BE0008_Using_View_States_to_show_or_hide_content Compile the example and run (online version works ok due to it was published when the work was in unfinished stated) Then push the button to change state from login form to result screen and push the button back to go to the other state. You'll see the layout is not equal. If check the html in the broswer, you'll find class names are lost between state changes. What do you think would be a good solution to this problem? thanks Carlos El vie., 14 sept. 2018 a las 18:23, Alex Harui (<[email protected]>) escribió: > Regarding class selectors and states, I guess I don't understand the > issue. The code behind Royale (and Flex) states should be capturing values > of properties changed by the state before they get changed, then restoring > those properties. IOW, if you were to have > > <js:states> > <js:state name="normal" /> > <js:state name="important" /> > <js:states> > <j:Button id="myButton" emphasis.normal="primary" > emphasis.important="emphasized" /> > > Then the myButton.emphasis="primary" at startup and when the state > changes to "important" the States impl should read myButton.emphasis and > store that value away before setting myButton.emphasis="emphasized". Then, > when the state changes back to "normal", the States impl should set > myButton.emphasis="primary" again. > > In the implementation for the emphasis property, if it involves changing > classLists, the implementation must do so in a way that handles having the > emphasis property changes at runtime. The States impl isn't really doing > anything application developer code might do, so the implementation must > support properties being set and re-set. > -- Carlos Rovira http://about.me/carlosrovira
