AS3 loading

4366 단어 Flash
AS2 때 LOADING을 할 때는 여러 가지 방법이 있는데 만들기도 편해요.
그런데 AS3 때 LOADING 할 때는 손을 쓸 수가 없었어요. 며칠 동안 눈이 멀었어요.
AS3에 새로운 클래스 LoaderInfo가 도입되었기 때문에 이 클래스는 작동할 수 있습니다
디스플레이 가능한 모든 개체(display object)에 추가
로드 프로세스 체크, 주소 로드, 객체 컨텐트 로드, 총 객체 로드 바이트(및
로드 중 바이트 수), 로드 대상의 너비 높이 등 매우 많은 내용
LoaderInfo 객체에는
1) flash에 액세스합니다.display.Loader 객체의 contentLoaderInfo 속성,
2) 표시할 수 있는 모든 대상(display object)에는loaderInfo 속성이 있다.
주의: 모든 SWF 문서의 주요 클래스의 실례는loaderInfo 속성이 있고 각loaderInfo 속성이 있으며 contentLoaderInfo 속성이 있습니다. 이 속성을 통해Loaded 대상의loaderInfo에 접근할 수 있습니다.
다음은 또 예를 들어 시범을 보일 것이다.먼저 loading 외부 파일의 예: CODE:
var request:URLRequest = new URLRequest("flashrek.swf");
var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);

function loadProgress(event:ProgressEvent):void {
     var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
     percentLoaded = Math.round(percentLoaded * 100);
     trace("Loading: "+percentLoaded+"%");
}
function loadComplete(event:Event):void {
     trace("Complete");
}

loader.load(request);
addChild(loader);

 
 
loader의load 방법은 URLRequest 대상만 매개 변수로 받아들일 수 있음을 주의하십시오.그리고 Progress Event 종류는 비교적 간단하고 도움말을 보면 됩니다.여기에는 LOAD 외부 대상일 뿐, 자신의 LOADING을 어떻게 할지는 좀 더 연구하고 답이 나오면 갱신해야 한다.자체 Loadingcode 업데이트:
stop();
import flash.display.LoaderInfo;
import flash.events.ProgressEvent;
import flash.text.TextField;
var loadText:TextField=new TextField();
addChild(loadText);
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,myloadmovie);
this.loaderInfo.addEventListener(Event.COMPLETE,myover);
function myloadmovie(event:ProgressEvent):void {
     var hl:Number=event.bytesLoaded/event.bytesTotal;
     var n:Number=Math.round(hl*100);
     loadText.text=n+"%";
}
function myover (event:Event):void {
     this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS,myloadmovie);
     nextFrame();
}


 
다음은 CODE의 또 다른 자체 loading 방법입니다.
stop();
import flash.display.LoaderInfo;
import flash.events.ProgressEvent;
import flash.text.TextField;
var loadText:TextField=new TextField();
loadText.x=220;
loadText.y=200;
addChild(loadText);
myload.addEventListener(Event.ENTER_FRAME,onEnterFramee);
function onEnterFramee (event:Event) {
     if (framesLoaded==totalFrames) {
         trace(1);
         myload.removeEventListener(Event.ENTER_FRAME,onEnterFramee);
         nextFrame();
     }
     else {
         var percent:Number=root.loaderInfo.bytesLoaded/root.loaderInfo.bytesTotal;
         var m:Number=Math.round(percent*100);
         myload.gotoAndStop(m);
         loadText.text=m+"%";
     }
}         //myload       loading   MC  


//     ; 
var stg = new Sprite(); 
stg.graphics.lineStyle(1,0x00FFFF,0.2); 
stg.graphics.beginGradientFill(GradientType.LINEAR,[0xFFFF00],[100,100],[0,255]); 
stg.graphics.drawRect(0,0,200,5); 
stg.graphics.endFill(); 
stg.x = (stage.stageWidth - stg.width)/2 
stg.y = (stage.stageHeight - stg.height)/2 
this.addChild(stg) 
//       
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,loading); 
this.loaderInfo.addEventListener(Event.COMPLETE,loaded); 

function loading(eve):void 
{ 
var loadpre:int = eve.bytesLoaded/eve.bytesTotal*100 
stg.scaleX = loadpre/100 
var txt:TextField = new TextField(); 
txt.text = loadpre + "%" 
stg.x = (stage.stageWidth - stg.width)/2 
stg.y = (stage.stageHeight - stg.height)/2 
this.addChild(txt) 
} 

function loaded(e:Event):void 
{ 
play(); 
} 


 
이것이 바로 AS3의 Loading 코드입니다. 건물주에게 도움이 되었으면 좋겠습니다//stg.x = (stage.stageWidth - stg.width)/2//stg.=(stage.stageHeight-stg.height)/2 이 두 마디 뒤에 있는 것을 구체적인 숫자로 바꾸면 된다. 예를 들어:stg.x = 400 stg.y = 500 이렇게 한쪽만 고정하고 한쪽만 연장

좋은 웹페이지 즐겨찾기