Use the below code to create a class file for loading SWF files. You can customize this code to suit your requirements.
It’s
very easy to use this in Flash. Create a new document in Flash and save the
file. The file should be saved outside the com folder. In the ActionScript
settings specify the source path as ./com/tcsion or as you have defined your
folder structure. Below is the screenshot for your reference.
package {
// importing classes
import flash.media.SoundMixer;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFormat;
// end of importing classes
// create a class file named
LoadSwf;
public class LoadSwf extends
MovieClip {
// variables and
constants
// all variables are
defined as private. _loginLoad and _titleBack are references to
// movieclips created in
Flash. In the Library right click Properties and select
// Export for
Actionscript checkbox. The name of the class is the datatype here
// (login_load and
title_background).
// Other variables here
are Loader instance, URLRequest, TextField, TextFormat
// and percent Number
variable
private var
_loginLoad:login_load;
private var
_titleBack:title_background;
private var
_myLoader:Loader;
private var
_myUrl:URLRequest;
private var
_percent:Number;
private var
_swfHeading:TextField;
private var _textFormat:TextFormat;
// closeBtn is a
reference to movieclip created in Flash. This is defined as public
// as it has to be
accessed from flash
public var
closeBtn:close_btn;
// end of variables and
constants
// constructer function
LoadSwf. This function adds the listener ADDED TO STAGE
public function
LoadSwf() {
//
constructor code
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
// addedToStage
function. Adds the Title Background Mc on the stage. This is
// just a movieclip with
some background in it. Initially it is made invisible
// textField object is
also created with textFormatting and similarly close
// button is added to
the stage. Also we add an event listener to the close
// button. A _loginLoad
Movieclip is added. This is the MovieClip which loads
// the swf files
public function
addedToStage(evt:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
// Title
Background Mc
_titleBack =
new title_background;
addChild(_titleBack);
_titleBack.visible
= false;
//
TextFormat
_textFormat
= new TextFormat("Arial", 17, 0xCCCCCC, true);
// SWF
Heading TF
_swfHeading
= new TextField();
addChild(_swfHeading);
_swfHeading.visible
= false;
_swfHeading.selectable
= false;
_swfHeading.width
= stage.stageWidth;
_swfHeading.defaultTextFormat
= _textFormat;
// Close
Button
closeBtn =
new close_btn;
addChild(closeBtn);
closeBtn.visible
= false;
closeBtn.addEventListener(MouseEvent.CLICK, onCloseClick);
// Login
Load Mc
_loginLoad =
new login_load();
addChild(_loginLoad);
_loginLoad.visible
= false;
}
// start loading the swf
file. This function will be called from the FLA file.
// It accepts certain
parameters like url, heading, width, height and y location
// You can make changes
to these as per your requirements. Within the function
// we reveal all the
movieclips, set their locations and load the SWF using the loader and urlrequest
public function
startLoad(url:String, heading:String, swfWidth:int, swfHeight:int,
swfY:int):void
{
// SWF
Heading TF
_swfHeading.visible
= true;
_swfHeading.text
= heading;
_swfHeading.x
= (stage.x) + 10;
// Close
Button
closeBtn.visible
= true;
closeBtn.x =
(stage.stageWidth) - 75;
// Title
Background Mc
_titleBack.visible
= true;
_titleBack.x
= (stage.stageWidth/2)- (_titleBack.width/2);
_titleBack.y
= (stage.stageHeight / 2) - (_titleBack.height / 2);
// Login
Load Mc
_loginLoad.visible
= true;
// Loader
_myLoader =
new Loader();
_loginLoad.addChild(_myLoader);
addChild(_loginLoad);
_loginLoad.width
= swfWidth;
_loginLoad.height
= swfHeight;
_loginLoad.y
= swfY;
_myUrl = new
URLRequest(url);
_myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,
onCompleteHandler);
_myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,
onProgressHandler);
_myLoader.load(_myUrl);
}
// on load complete
handler
private function
onCompleteHandler(loadEvent:Event):void
{
// Loading
Completed
}
// on load progress
handler. This calculates the loading percentage
// which can be used as
a preloader
private function
onProgressHandler(mProgress:ProgressEvent):void
{
_percent =
mProgress.bytesLoaded / mProgress.bytesTotal;
trace(_percent);
}
// on clicking the close
button this function is executed. It hides all the
// movieclips, unloads
the loader and stops all the sounds in case the sound is playing in the movie
private function
onCloseClick(evt:MouseEvent):void
{
// Title
Background Mc
_titleBack.visible
= false;
// Login
Load Mc
_loginLoad.visible
= false;
// Close
Button
closeBtn.visible
= false;
// SWF
Heading TF
_swfHeading.visible
= false;
// Unload
the _myLoader Loader
_myLoader.unloadAndStop();
// Remove
the _loginLoad movieclip from the stage
_loginLoad.removeChild(_myLoader);
removeChild(_loginLoad);
// Stop all
the sounds from playing
SoundMixer.stopAll();
}
}
}
Save this
class file in a folder. You can give any name to the folder. But the industry
practice it to name it in reverse order of your website. For example if your
website name is http://www.tcsion.com
Create a
folder com and within com create a folder tcsion. So the location will be com/tcsion.
After defining
the source path you can start adding the script in the timeline.
Initially in
the 1st Keyframe add the below script
// import the
class
import
LoadSwf;
// create a
new instance and add it to the display list
var
swfLoad:LoadSwf = new LoadSwf();
addChild(swfLoad);
// Now the
loading functionality is ready to be used. This can be used either on button
click or // on Enterframe.
someBtn.addEventListener(MouseEvent.CLICK,
onClk);
function
onClk(evt:MouseEvent):void
{
MovieClip(root).swfLoad.startLoad("swf/Demo_for_Purchase_Requisition.swf",
"Demo for Purchase Requisition", 840, 510, 30);
}
No comments:
Post a Comment