home *** CD-ROM | disk | FTP | other *** search
Java Source | 1997-11-13 | 3.6 KB | 123 lines |
-
- // Copyright (c) 1997 Microsoft Corporation
-
- import java.awt.*;
- import java.applet.*;
- import java.net.*;
- import com.ms.dxmedia.*;
-
- // Constructs a model where the image and the sound are switchers,
- // the model provides set methods that switches its constituent
- // sound and image into new values, upon external events.
- class SwitchModel extends Model {
- public void createModel(BvrsToRun blst) {
- // Build up a URL to import relative to.
- URL mediaBase = getImportBase();
- URL imgBase = buildURL(mediaBase, "image/");
- URL sndBase = buildURL(mediaBase, "sound/");
-
- // Import the image and sound values.
- _canyonImg = importImage(buildURL(imgBase, "foliageUtah.jpg"));
- _kidsImg = importImage(buildURL(imgBase, "kidsUtah.jpg"));
- _oceanImg = importImage(buildURL(imgBase, "hiddenBeachSG.jpg"));
- _canyonSnd = importSound(buildURL(sndBase, "earth.mp2"), null).loop();
- _kidsSnd = importSound(buildURL(sndBase, "torain.mp2"), null).loop();
- _oceanSnd = importSound(buildURL(sndBase, "wave.mp2"), null).loop();
-
- // initialize the switchers, and extract their behaviors
- _imgSw = new ModifiableBehavior(_canyonImg);
- ImageBvr _img = (ImageBvr)_imgSw.getBvr();
- _sndSw = new ModifiableBehavior(_canyonSnd);
- SoundBvr _snd = (SoundBvr)_sndSw.getBvr();
-
- // set the image and sounds of the model to the switch behaviors
- setImage(overlay(_img, solidColorImage(blue)));
- setSound(_snd.gain(0.4));
- }
-
- // these methods switch the behaviors to new values.
- // the new values are started at the time of switching.
- public void setCanyon() {
- _imgSw.switchTo(_canyonImg);
- _sndSw.switchTo(_canyonSnd);
- }
-
- public void setKids() {
- _imgSw.switchTo(_kidsImg);
- _sndSw.switchTo(_kidsSnd);
- }
-
- public void setOcean() {
- _imgSw.switchTo(_oceanImg);
- _sndSw.switchTo(_oceanSnd);
- }
-
- // the switchers
- private ModifiableBehavior _imgSw;
- private ModifiableBehavior _sndSw;
-
- // the media values
- private ImageBvr _canyonImg;
- private ImageBvr _kidsImg;
- private ImageBvr _oceanImg;
- private SoundBvr _canyonSnd;
- private SoundBvr _kidsSnd;
- private SoundBvr _oceanSnd;
- }
-
- // the applet is a DA canvas and a panel of buttons
- public class Switch extends Applet {
- public void init() {
- setLayout(new BorderLayout());
- DaSwitch DaCv = new DaSwitch();
- Panel ctrls = new AwtControls(DaCv._model);
- add("Center", DaCv);
- add("North", ctrls);
- }
- }
-
- // the DA canvas
- class DaSwitch extends DXMCanvas {
- DaSwitch() {
- _model = new SwitchModel();
- setModel(_model);
- }
- SwitchModel _model;
- }
-
- // a panel with three buttons,
- // it calls the model's corresponding set methods
- // upon button events.
- class AwtControls extends Panel {
-
- // Place the scrollbar at the center, then two buttons on either side.
- AwtControls(SwitchModel switchModel) {
- _switchModel = switchModel;
- setLayout(new FlowLayout());
- Panel buttons = new Panel();
- buttons.add(new Button("Canyon"));
- buttons.add(new Button("Kids"));
- buttons.add(new Button("Ocean"));
- add(buttons);
- }
-
- // The event handler when any buttons are pressed.
- public boolean handleEvent(Event ev) {
- switch (ev.id) {
- case Event.ACTION_EVENT:
- if (ev.arg == "Canyon") {
- _switchModel.setCanyon();
- return true;
- } else if (ev.arg == "Kids") {
- _switchModel.setKids();
- return true;
- } else if (ev.arg == "Ocean") {
- _switchModel.setOcean();
- return true;
- }
- }
- return false;
- }
- SwitchModel _switchModel;
- }
-