I spent some time creating an application entirely in Expression Interactive Designer (EID)called Monkeys Jumping. The idea is that it would be an educational game for children with the purpose of helping them count. It was also an exercise for me to use nothing but EID for all assets and all code.
I created the monkeys in EID using a set of primitives and used the Group feature to create a generic monkey that I could animate and reuse.
If you click on the monkeys it will cause a monkey to jump off the bed and it triggers a storyboard with a series of animations with the mom coming in and scolding the monkeys. There are then some balloons with text that fades in and out. It also pauses the music and starts a different piece of music. Once that storyboard finishes, it unpauses the music and the remaining monkeys continue to jump.
The quality is a bit rough — hey I’m dev, not design — but I think with a little more time it could be polished up.
I had to write code to handle two things: (1) starting, pausing and resuming media and (2) starting a new storyboard when a storyboard completed. Nothing too fancy here: just a matter of going into the XAML, adding a CurrentStateInvalidated attribute to the <Storyboard> elements and then handling the event in code. For example, when the jumping sequence ends as a result of the mousedown, I do the following:
MediaPlayer jump = new MediaPlayer();
private void OnJumpingEnd(object sender, EventArgs e)
Clock clock = (Clock)sender;
if (clock.CurrentState != ClockState.Active)
Storyboard s = (Storyboard)this.Resources[“hittest”];
jump.Source = new Uri(“fall.wav”, UriKind.Relative);
jump.Volume = 1;
Once WPF and EID release, this type of thing probably won’t be necessary, but it is a useful trick given the state of both WPF and EID now.
If anyone wants to take this rough proof-of-concept and extend it, be my guest!
Note that there is a hardcoded path to the David Byrne song that is on all Windows XP machines — if you deleted this or installed the OS on the non-default partition (c:) you won’t get music. At first I had Perez Prado’s Mambojambo, but then I realized I couldn’t distribute that .mp3 with the code sample.