AS3工程中的Loading的应用
今天又來介紹Loading...(-_-!!!...好像整天都介紹Loading..希望沒誤導各位...)
首先..由于AS工程沒有幀..所以不能用常用的方法來做Loading..
這里介紹的方法使用元標簽Frame(應該是元標簽吧?還是叫元數據標簽)
網上對Frame的介紹是...使用指定的類替換文檔類...
并把其它的東西都丟到了該類的第二幀...
概念就不多說了...英文好的可以看看這個文章...http://www.bit-101.com/blog/?p=946
?
Preloader類
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.utils.getDefinitionByName;
/**
? ? ?
* 加載類,由于原內容會放到此類的第二幀~所以需要使用MovieClip;
? ? ?
* @author L4cd.Net
? ? ?
*/
public class Preloader extends MovieClip
{
? ?
[Embed(source="l4cd_48_48.jpg")]
? ?
private var LogoClass:Class;
? ?
private var text:TextField;
? ?
public function Preloader()
? ?
{
//不多說了
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.showDefaultContextMenu = false;
//顯示一張圖片..非必要
with(addChild(new LogoClass()))
{
? ? ? ? ? ?
x=(500-48)/2;
? ? ? ? ? ?
y=(380-48)/2;
}
//加一個textField顯示進度
text = addChild(new TextField()) as TextField;
with(text)
{
? ? ? ? ? ?
defaultTextFormat = new TextFormat("宋體",12,0,null,null,null,null,null,"center");
? ? ? ? ? ?
mouseEnabled = false;
? ? ? ? ? ?
height = 16;
? ? ? ? ? ?
x = (500-100)/2;
? ? ? ? ? ?
y = 35+(380-15)/2;
}
//重要~偵聽~
loaderInfo.addEventListener(ProgressEvent.PROGRESS,progress);
loaderInfo.addEventListener(Event.COMPLETE,complete);
? ?
}
? ?
//顯示進度
? ?
private function progress(e:ProgressEvent):void
? ?
{
text.text = (e.bytesLoaded/e.bytesTotal*100).toFixed(2)+"% Loaded";
? ?
}
? ?
private function complete(e:Event):void
? ?
{
//重要..加載完后...我們跳轉到第二幀
gotoAndStop(2);
//獲取文檔類...然后顯示,對于此步操作..有多種方法..有人習慣直接把原文檔類addChild到此類當中..
var mainClass:Class = Class(getDefinitionByName("AsProjectLoadingExample"));
stage.addChild(new mainClass() as DisplayObject);
//刪除此類
destroy();
? ?
}
? ?
private function destroy():void
? ?
{
loaderInfo.removeEventListener(ProgressEvent.PROGRESS,progress);
loaderInfo.removeEventListener(Event.COMPLETE,complete);
parent.removeChild(this);
? ?
}
}
}
?
AsProjectLoadingExample類
package {import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.geom.Matrix;
?
?
[SWF(width="500",height="380",backgroundColor="#FFFFFF",frameRate="24")]
//注意此行,Preloader為類名
[Frame(factoryClass="Preloader")]
public class AsProjectLoadingExample extends Sprite
{
? ?
[Embed(source="CD艷照.png")]
? ?
private var ImageClass:Class;
? ?
//嵌入一個2M的文件以顯示加載效果
? ?
[Embed(source="something.wma",mimeType="application/octet-stream")]
? ?
private var SomeClass:Class;
? ?
public function AsProjectLoadingExample()
? ?
{
//馬賽格ing...
var bmp:Bitmap = new ImageClass();
var bit:BitmapData = new BitmapData(bmp.width/10,bmp.height/10,true,0);
bit.draw(bmp,new Matrix(.1,0,0,.1));
with (addChild(new Bitmap(bit)))
{
? ? ? ? ? ?
scaleX = scaleY = 10;
}
? ?
}
}
}
轉載于:https://www.cnblogs.com/top5/archive/2009/08/01/1536623.html
總結
以上是生活随笔為你收集整理的AS3工程中的Loading的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web developer tips (
- 下一篇: NHibernate Step By S