Friday, April 9, 2010

Video object with the NetConnection and NetStream classes

This class creates a Video object in an Adobe Flash interface that plays either of the following kinds of video: recorded Flash Video (FLV) files stored on a server

or locally, or live video captured from a user's computer. A Video object is a display object on the application's display list and represents the visual space in which the video runs in a user interface.

You can control various properties of Video objects. For example, you can move the Video object around on the Stage by using its x and y properties, you can change its size using its height  and width properties, and so on. To play a video stream, use attachCamera() or attachNetStream()  to attach the video to the Video object. Then, add the Video object to the display list using addChild().


The following example uses a Video object with the NetConnection and NetStream classes to

load and play an FLV file. To run this example, you need an FLV file whose name and location

match the variable passed to videoURL, in this case, an FLV file called test.flv that is in

the same directory as the SWF file.

package {
    import flash.display.Sprite;
    import flash.display.*;
    import flash.events.*;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;

    public class VideoManagerextends Sprite {
        var ns:NetStream;
        var vid:Video;
        var vdoUrl:String = "test.flv";
        public function VideoManager() {
            var nc:NetConnection=new NetConnection  ;
            nc.connect(null);
            ns=new NetStream(nc);
            vid=new Video();
            vid.width=1024;
            vid.height=768;
            this.addChild(vid);
            vid.attachNetStream(ns);
            ns.play(vdoUrl);
            ns.addEventListener(NetStatusEvent.NET_STATUS,netstat);
            var netClient:Object=new Object  ;
            netClient.onMetaData=function(meta:Object){
            trace("duration:   "+meta.duration);
            };
            ns.client=netClient;
            // function for checking flv complete or not
            function netstat(stats:NetStatusEvent) {
                trace("info:  "+stats.info.code);
                if (stats.info.code=="NetStream.Buffer.Flush") {
                    ns.pause();
                    this.removeChild(vid);
                }
            }// end of the netstat function
        }// end of the function testComponentFlv
    }
}

1. Paste the class code into a new AS file and give the file the same name as the primary class  "VideoManager.as".
2. Create and save a new empty FLA file in the same directory as the AS file.
3. In the Properties tab of the Property inspector enter the class name of the primary class for the example in the Document class text box "VideoManager".
4. Save your changes to the FLA file.
5. Test the movie using the Control > Test Movie menu option.
6. Make sure test.flv is in the same directory as the SWF file.

Thursday, April 8, 2010

onEnterFrame

  • Description:

Event handler; invoked continually at the frame rate of the movie. The actions associated with the enterFrame clip event are processed before any frame actions that are attached to the affected frames.

You must define a function that executes when the event is invoked.This Event Handler Function is called at the start of each frame of display, whether the associated object is playing or not. However, if the sprite is removed, then the onEnterFrame actions are no longer processed. The Actions associated with the Event are processed before any Frame Action events for the object.

If "includingFirstFrame" is specified, then the actions will be processed on all frames of display starting from and including the very first frame that the object is placed. If "excludingFirstFrame" is specified, then it will not run for the first time until the frame AFTER the object is placed. Compare this with the onLoad Event Handler Function, which will run ONLY for the first frame of display.

The default if you specify neither option is "excludingFirstFrame" (this is the same behaviour as Flash uses for its enterFrame clip event).

This Event Handler is an ideal place to install collision detection routines for games, etc.

  • Syntax:

onEnterFrame = function() {}

  • Example of onEnterFrame:

1) The following example defines a function for the onEnterFrame event handler that sends a trace() action to the Output panel:

mc.onEnterFrame = function () {
    trace("come");
}


2) The following example defines a function for the onEnterFrame event handler that increase the size of a variable "i" by one and display it to a dynamic text "digit".


var i:Number = 0;
this.onEnterFrame = function() {
    i = i+1;
    digit.text = i;
};


  • onEnterFrame vrs setInterval:

onEnterFrame's time intervals are equal to the frame rate set in the document properties. If you want to run some code at different intervals of time, onEnterFrame won't be able to do the job. This is where setInterval is used. setInterval works like onEnterFrame except the time intervals are independent of the document's set frame rate. The timer measures the intervals in milliseconds, so you can run a function many times faster or slower that the document's frame rate.

Wednesday, April 7, 2010

volume slider in AS 3.0

A volume slider is a small bar that you can drag to increase or decrease the volume of any sound. In this tutorial, you will learn how to create just that.Let’s create a simple audio volume controller:

step 1) Copy and paste below code at first frame.
step 2) Make a movieClip for sound track named "track_mc".
step 3) Make another movieClie (for volume control) named "slider_mc" inside the "track_mc".
step 4) Insert sound (like .wav n .mp3) at first frame.



// AS 3.0 code for Volume Slider or Audio Control:

var soundVol:SoundTransform = new SoundTransform();
var soundVolume:Number = 1;

// Code that handles the volume slider
var trackBounds:Rectangle = track_mc.getBounds(track_mc);
var xPos:Number = trackBounds.x;
var yPos:Number = trackBounds.y;
var widthPos:Number = trackBounds.width-track_mc.slider_mc.width;
var heightPos:Number = 0;
var bounds:Rectangle = new Rectangle(xPos,yPos,widthPos,heightPos);
track_mc.slider_mc.x = widthPos;
track_mc.mouseEnabled = false;
track_mc.slider_mc.buttonMode = true;

track_mc.slider_mc.addEventListener(MouseEvent.MOUSE_DOWN,dragSlider);
stage.addEventListener(MouseEvent.MOUSE_UP,stopSlider);

function dragSlider(event:MouseEvent):void {
event.target.startDrag(false,bounds);
addEventListener(Event.ENTER_FRAME,setVolume);
}

function stopSlider(event:MouseEvent):void {
track_mc.slider_mc.stopDrag();
removeEventListener(Event.ENTER_FRAME, setVolume);
}
function setVolume(event:Event):void {
soundVolume = track_mc.slider_mc.x/widthPos;
soundVol.volume = soundVolume;
SoundMixer.soundTransform = soundVol;
}