Join Justin Putney for an in-depth discussion in this video Using multistate objects, part of InDesign for UX Design.
In this video we're going to take a look at multi-state objects. Multi-state objects are kind of a wonderful catch-all for variable content in InDesign. They can do anything from create slide shows, to show and hide content, or completely change the display of something. They can have automatic playback or they can be triggered by user interaction. They're another great way to add interactivity to your prototypes without involving any coding. Let's start with a new document. I'm going to select the Rectangle tool.
And I'm just going to draw out a big rectangle. And inside the rectangle, I'm going to add some text using the Type tool. Just going to type the number one. And I'm going to select it and make it significantly bigger. Lets go with 72 point. And I'm going to center align it, using the control bar at the top. I'm going to right click on the text frame, and as we have in previous videos, in the Text Frame options, I'm going to vertically align the text. So that the number one appears in the center of the rectangle, and then let's switch to the Selection tool and go up to Window and choose Interactive > Object States.
Right now, the Object States panel isn't displaying anything, because this object is not yet a multi-state object. So, to convert this to a multi-state object, we're just going to to click the convert selection to multi state object. Which once converted to a multi state object, or MSO, this button will become the new state button. So, now that I've clicked it, it's automatically created state two for me. And I'm just going to double click in here. So, once I double click I'm actually editing the state. And I want to double click one more time so, that I'm editing the text within that state.
I'm going to select the number one, and change it to a two, and then I'll just hit Escape. And now, I'm back out to state two editing the multi-state object, and I'm going to hit the Create New State button one more time to add a third state, which I'm going to change the name of, to State Three. I'm going to do the same thing, double-click into the State, then double-click into the text frame, and change the text to three. And then I'll hit the Escape key to be back at the top level with the Selection tool. So now if I click on these States, in the Object States panel, you can see that I'm actually switching between three different displays.
We now have variable content that can be controlled with user action. So let's add a next button. Just grab the Rectangle tool, draw out a rectangle, and then select the Type tool, click inside, and type next. So I'm going to select the text, I'm going to bump up the text size to twenty four, and I'll just center the text, and I don't even have to vertically align that. That's reasonably good for me, for right now. And I'll just Option+Shift select, to duplicate that. And I'm going to double click in there to enter the text frame, and I'll double click to select the word next, and change it to previous.
And then I'll hit escape to get outta there. And now I'm just going to drag select to grab both of these text frames. I'm going to open the Buttons and Forms panel. And I'm going to click the Convert to Button and that will actually convert both of these items to button. Now I'll select them individually. And I'm not even going to worry about the button names for right now, but I would like to add the next action to this button. And I'll do that by clicking the plus sign next to the actions and going down to Go To Next State. Now when that pops up there'll be an object menu and right now there's only one multi-state object.
If you're dealing with a document that's any more complex I would recommend that you consciously name your buttons and your multi-state objects because you may find them hard to locate if they're just name Multi-state 1, Multi-state 2, etc. But for right now, we're just working with one object, so that's not a big deal. And we'll check the box that says Stop at Last State. Let's now select the previous button. And add the Go To Previous State. And we'll also check the box that says stop at first state. Now let's preview the center activity.
I'll click the preview spread button. And now I'll click the next button, several times, and you'll notice I'll go from state 1 to 2 to 3. And then it'll stop at 3 because we checked that box that said stop at last state. And let's make the previous button is working the way it should. And it's also working just as it should. So, close the swift preview. Now, we can have even more granular control over the multi-state object. I'm going to create a new button, by holding the Option and the Shift keys, and dragging down and letting go to make a copy.
I'm going to go in and change the text inside this button to jump. Because we'll have this button jump to a specific state. So just hit the Escape key to get out, and this still has the go to previous state action assigned from the previous button, but let's change that. I'm just going to hit the Minus key to delete that action, and then in the event let's change this to on roll over, so you'll notice there are actually a couple different types of interactivity that we can add. So we'll do on Rollover and then click the plus sign to add an action, and we'll choose go to state so we can actually send this to a specific state.
It may not be evident with this simple MSO but go to state is actually really powerful. You can store all kinds of content that isn't immediately viewable to the user. And then trigger it by going directly to that state based on some kind of user interaction. So in this case to make sure it's working let's set state to state two, and then let's click the preview spread button. So will use Next to go forward, Previous to go back, and if we hovered on the jump button, it goes to two.
Now close the swift preview and I'll show you one more thing. There's also a nice option for a rollover, which is go back on Roll Off. So let's read preview after checking that box. And now if I hover over the jump button and then move away, it actually goes back to the last date. So this can be a really useful way to show content as well. For example, I could set the first state so that it has no stroke or fill, it could be completely empty, and thus moving to a different state would be like going from nothing to something.
Let's take a look at a practical example of how this could be used. So you can find this mso_tooltip document in the start folder that corresponds with this video. This is a mockup for a standard accept and continue page. You can't see it right now but there's the MSO that I'm hovering over with a hidden state. So I've actually named this state hidden, which it makes it much easier to add in our activity. And there's a visible state as well. So I've got that same action applied that we just looked at, and I'm going to preview this. So the idea we're looking at in this wire frame is that when the user hovers over the button before taking action, they get a warning that says, by clicking this button, you're consenting to the terms outlined above.
This functionality can be exported to SWF, just as we're previewing here. It's supported by In5 as well, but it's not directly supported by the interactive PDF. There is a trick however, if you'd like to get it into an interactive PDF, you can export a SWF then reimport that SWF into InDesign and then export to interactive PDF and you will have this multi-state functionality. In the next video, we'll take a look at adding animation.
- Setting up your InDesign files
- Creating shapes
- Stacking and grouping artwork
- Adding placeholder text
- Adding interactivity and motion to wireframes
- Creating responsive wireframes
- Using master pages and object styles
- Exporting wireframes for clients and developers