Bits & Bytes

Posts Tagged ‘actionscript’

Playing a Video File in Actionscript 3.0

We begin by creating an Actionscript 3.0 project and setting the stage dimensions to match our video. In this case, the video is 240 by 180 pixels. Then we add this code, compile, and execute. To play the video file, click the screen as shown above.

// Output the initial instructions to user
var qInstructions:TextField = new TextField();
qInstructions.text = "Click To Play";
addChild(qInstructions);

// Create a video object with 240x180 pixels
var MyVideo:Video = new Video(240, 180);
addChild(MyVideo);

var qNetConnection:NetConnection = new NetConnection();
qNetConnection.connect(null);

var qNetStream:NetStream = new NetStream(qNetConnection);
MyVideo.attachNetStream(qNetStream);
// Add this line to ignore metadata and cue points
qNetStream.client = new Object();

// Play the video when the screen is clicked
stage.addEventListener(MouseEvent.CLICK, OnClick);
function OnClick(e:MouseEvent): void {
	qNetStream.play("http://xoax.net/public/XoaX.flv");
}

The first part of the program outputs the message telling the user to click the screen. Next, we create a Video object that matches the dimensions of our video. Then we create a NetConnection object and call connect() with the argument value null to signal that we are going to load a sound or video file. Finally, we create a NetStream object using the NetConnection and attach it to the Video.

Once this is done, we can play a video file from anywhere: either our local drive or a remote location on the web. To make the video wait to play until the user clicks, we have wrapped the call to play() in a callback that is called when the stage is clicked.

Looping Music or Sounds in Actionscript 3.0

For the second example, we demonstrate how to loop a music file using a separate class file. We start with the sound file “XoaxTheme.mp3” in our project and its associated class, XoaxTheme, that we had from our previous post.

To begin, we add an ActionScript code file to the project by selecting File->New from the menubar. This opens the “New Document” dialog shown below, where we left-click “ActionScript File” to select it and left-click the “OK” button to create a new code file.

Next, we paste this code into the new file:

package {

    import flash.media.SoundChannel;
    import flash.events.Event;
	
    public class CMyClass {
		
        var mqMusic:XoaxTheme;
        var mqSoundChannel:SoundChannel;

        public function CMyClass() {
            mqMusic = new XoaxTheme();
        }
		
        public function StartMusic(e:Event):void {
            mqSoundChannel = mqMusic.play();
            mqSoundChannel.addEventListener(Event.SOUND_COMPLETE,
                StartMusic);
        }
    }
}

and then change the code in the main code file to this:

var qMyClass:CMyClass = new CMyClass();
qMyClass.StartMusic(null);

The new code file needs to be saved. So, we select File->Save As… from the menubar and save the file as “CMyClass.as” in the project folder. Finally, we can compile and execute the code, and it will play the music repeatedly.

Let’s review the code above. In our class file, we use an unnamed package and import the SoundChannel and Event files. Inside the class, we have two members: mqMusic and mqSoundChannel, which are used to control the music. The class XoaxTheme is the sound class that we created in the library. We instantiate this class in the constructor.

The function StartMusic() does all of the real work in the program. When we call play(), the music starts playing and a SoundChannel object is created and returned. The SoundChannel controls the sound as it plays. We register a SOUND_COMPLETE event on the SoundChannel to call the function StartMusic() recursively when the music finishes playing. In this manner, we create the loop for repeatedly playing the music.

In the main program, we create an instance of a CMyClass object and then call StartMusic() on it to begin the music loop.

Playing Music or Sounds in Actionscript 3.0

For our first example, we demonstrate how to add a simple sound file to a newly-created project and play it. We start by adding the sound file to the project.

Go to the menubar and select
File->Import->Import to Library…

Then select the sound file that we want to play, something like an .mp3 or .wav file, and left-click the “Open” button. Then right-click the file under the “Library” tab to open the context menu and left-click “Properties…” in the context menu. This opens the “Sound Properties” dialog.

At this point, you might need to left-click the “Advanced” button to open the advanced options inside the “Sound Properties” dialog. In the “Linkage” area, left-click the check box next to “Export for Actionscript.” Then change the name next to the “Class:” box to something appropriate for the class name of your sound. The simplest idea for the class name is to just remove the file extension (.mp3 or .wav, for example). This is what it looks like for my example:

Finally, left-click the “OK” button to create the class. Now, “Export: XoaxTheme” is under “Linkage” in the “Library” tab next to the file name “XoaxTheme.mp3”.

We finish the program, by adding these lines in the “Actions – Frame” tab, where our main program code goes:

var qMySound:Sound = new XoaxTheme();
qMySound.play();

Now, we can compile and execute our code from the menubar by selecting
Debug->Debug Movie

This plays the sound file that we added and finishes our first example. This simple example only uses two lines of code. In our next example, we demonstrate how to loop this music with the code in a separate class file.

 

© 2007–2024 XoaX.net LLC. All rights reserved.