プリローダーに関する以前のトピックがたくさんあることを知っており、それらのすべてに従おうとしましたが、それでも同じ問題が発生します (まあ、それらは私が 80% から 50% に移行するのに役立ちました) 61450 / 125207
。約50%です。
これが私のMain Document
(プロジェクト全体のデフォルトのクラスファイル)クラスです:
public class MainDocument extends MovieClip
{
private var preloader:Preloader;
private var sB:startButton;
public function MainDocument()
{
preloader = new Preloader();
preloader.x = 300;
preloader.y = 400;
addChild(preloader);
loaderInfo.addEventListener(Event.COMPLETE,addStartButton,false,0,true);
}
private function addStartButton(e:Event):void
{
sB = new startButton();
sB.x = 300;
sB.y = 450;
sB.addEventListener(MouseEvent.CLICK,sMainMenu,false,0,true);
addChild(sB);
loaderInfo.removeEventListener(Event.COMPLETE,addStartButton);
}
private function sMainMenu(e:Event):void
{
sB.removeEventListener(MouseEvent.CLICK,sMainMenu);
removeChild(sB);
removeChild(preloader);
sB = null;
preloader = null;
var menuScreen = new MenuScreen();
addChild(menuScreen);
//I have heard that the following code might work better:
//var menuScreen:Class = getDefinitionByName("MenuScreen") as Class;
//addChild(new menuScreen() as DisplayObject);
}
}
そしてPreloader
それが添付するもの:
public class Preloader extends MovieClip
{
public function Preloader()
{
addEventListener(Event.ENTER_FRAME,Load);
}
private function Load(e:Event):void
{
//"bar" is a movieclip inside the preloader object
bar.scaleX = loaderInfo.bytesLoaded/loaderInfo.bytesTotal;
//"percent" is a dynamic text inside the preloader object
percent.text = Math.floor(loaderInfo.bytesLoaded/loaderInfo.bytesTotal*100)+"%";
trace(loaderInfo.bytesLoaded+" / "+loaderInfo.bytesTotal);
if (loaderInfo.bytesLoaded == loaderInfo.bytesTotal)
{
removeEventListener(Event.ENTER_FRAME,Load);
}
}
}
->Export on Frame 1
以外には何も設定されていませんPreloader
-> 最初のフレームにオブジェクトが存在しません。最初のフレームの唯一のコードはstop();
-> 2 番目のフレームにすべての MovieClip のコピーを配置し、startButton をクリックすると、gotoAndStop(3);
フレーム 2 が表示されないように実行されます。
私が忘れていたかもしれない簡単なことを誰かが知っているなら、私に知らせてください!
ありがとう!