Creating a New Cross-Platform Application in Revolution
When I first started thinking about this Chapter, I lost focus and started thinking about knowing all there is to know about Revolution. That was naive, and pretty stupid of me. I had exposed myself to a little bit of the vastness of Revolution and started thinking in grander terms than my original conception, which was to provide the old HyperCard crowd a really good excuse to shift their long-standing HC devotion to Revolution by demonstrating that Revolution can be a fairly simple extension to their HyperCard addiction. That group, on a worldwide basis, was - and is - huge. This will allow them to continue solving most of the same kinds of problems they had handily tamed with HyperCard; but with added dynamism and much fewer restrictions. I am not abandoning this ambition to know all about Revolution; rather I am facing up to the fact that, as is often stated in text books on most all topics, "it is beyond the scope of this publication."
Retreating to the same mentality I had when I first attacked HyperCard, I'm going to concentrate on creating some limited capacity stacks and then extend their behavior as stand-alones. Meaning that, even though there are a whole host of really fantastic things that can be done with Revolution, we're just going to experience the tip of this gigantic iceberg.
So, we're going to create a somewhat, but not too, elementary Revolution stack from scratch and then turn it into a standalone application for both the Mac OS X and Windows XP operating systems. We won't complete those tasks completely in this Chapter. Just this past Monday, Revolution Version 2.8 was announced, which provides full Windows Vista compatibility; however, we still have a few unresolved issues from last week, things that I promised I'd find out about and announce this week.
What Can't Be Done With the Media Edition of Revolution?
You can't convert HyperCard stacks to Revolution stacks. That takes the Studio Edition.
You also cannot create standalone applications for any platform.
You can create fully functioning Revolution stacks, using all of Revolution's features; but if you plan to distribute them to others, they will also need to have the Revolution Player, something that is free and may be distributed with your stack creations. This is something that was also done with HyperCard when it finally introduced its ability to produce standalone applications.
I am told that the Revolution website is making all of this much clearer to those who come to take a peek. I also indicated that I would make some other issues a bit clearer.
HyperCard Backgrounds versus Revolution Groups
Most importantly, how do we create the equivalent of the HyperCard background? The HC background is a "layer" between the cards of a stack and the stack itself. It's like the scenery for the activities that take place in a stage play's "scenes." When a play's scene changes, a break occurs during which time the stage hands come out, usually while things are dark, and rearrange or change the props used and maybe even place a new backdrop for the next "set."
All of the activities that take place while that scenery is in place is very much akin to what happens on the cards of a HC Stack that have the same background. Buttons, fields and graphics occurring on a card with a specific background are shared by all of the cards with that same background. With HC, all cards created while "in" some background, have that background as "their" background. Even though a field is shared amongst a number of cards, the contents of that field do not necessarily have to be the same on every one of the cards, but if it is NOT shared then it will or may be different on all of them. There are other subtle nuances as well.
The following is a step-by-step process for creating/using "Groups" with Revolution. Once created, they function much like HC's backgrounds; though, as mentioned, there may be multiple "Groups" resident on any card. I still don't feel comfortable using them; and, recently, I messed up a stack I was developing to the point of having to revert to one I had saved nearly 10 days earlier. I won't wait that long between making backup copies again. My only consolation was that when I redid all that I had done in the interim I did it much better. I probably would not have started over without the loss I'd faced. Sometimes good things come of bad things! At least I'm able to see it that way.
Creating/Using Groups with Revolution
- Create any object or objects. Select them by lassoing them, or shift/clicking them one-by-one.
- With the object(s) selected, choose "Group" or "Group Selected" from the "Object" menu or the ToolBar at the top of the screen.
- Open the Grouped Objects' Property Inspector.
- Check the "Behave as Background" checkbox or set the backgroundBehavior to true using the Message Box.
- If there are existing cards, you must go to each one and choose "Place Group" from the Object Menu; new cards created from a card that has the Group already in place will automatically have all of the objects in the Group.
- Instead of going to each existing card, particularly with a large number of cards, write a script to accomplish the above actions; you may skip cards you don't wish to share the groups object(s).
- Be careful if you want to add more objects to the Group. It is not as simple as just selecting an existing group along with some other object or objects and doing a Re-Group, as I feel it should be; unless I've missed something, you must ungroup the existing group, which may make it appear that you've lost everything, particularly if you already have more than one card. The newly "un-grouped" objects will appear on the card on which you performed the "un-grouping." The other cards will have no objects from the group. When you create a new group with the added objects, you will have to treat all of the cards as existing when that group is created; meaning you must go to each card and "place that group" on it. The upshot of all this is that you should plan carefully ahead to make sure that your design is complete before you start creating any more cards. Otherwise, it can be quite confusing and frustrating. I'm sure this topic will be addressed again; and, perhaps, again.
A New Revolution Stack
Even though I have discussed Groups at length, the new stack I will now create will have but a single Group, that one for the menu bar; mostly because I began this stack prior to having any real understanding of Groups and what they might be used to do.
As mentioned last week, this stack will be an Activities and Coloring Book pertaining to the places and things that actually happen in the City of San Diego, California. In concer