AS3 loading
4366 단어 Flash
그런데 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 이렇게 한쪽만 고정하고 한쪽만 연장
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
writeFlashHTML, 주로 Flash 출력에 사용되는 JS 방법입니다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.