/* 汎用プリローダー(SWF6以降用) ■ローダーの取り付け方■ ○ParaFla! の場合 「プロジェクトのプロパティ」で「ID:9999の画像ファイルをロード画面にする」にチェックし、 ID:9999のスプライトの中の1フレーム目にフレームアクションとしてこのスクリプトを記述します。 メインイベントのはじめには[何もしない:1][画像消去:0]を入れてください。 ○Suzuka の場合 レイヤーリストにフォルダを作り、フォルダ内にスプライトを「開始フレーム1」「フレームカウント2」にして配置し、 そのスプライトの中の1フレーム目にフレームアクションとしてこのスクリプトを記述します。 スクリプトを外部ファイルとして置きたい場合はこのスクリプトをテキストファイルとして保存し、 スプライトのフレームアクションに次のように記述してください。 ""の中にはスクリプトのテキストファイルのファイル名(パス)を入力してください。 #FILE "ファイル名"; ローダーはswfのサイズに合わせて自動調整されますが、 サイズが小さすぎると潰れてしまうので、250×250px以上のサイズを強く推奨します。 ■その他■ このスクリプトを使用して発生したいかなる損害は、作者は責任を負いません。 改造は自由ですが、自己責任で行ってください。 何かありましたら、下記サイトにご連絡下さい。 2006/09/24 HynWi http://www.geocities.jp/para_core/index.html */ //-----<設定項目>------------------------------------------------------------------------------------------ back = 0x000000 ; //ロード画面背景色 frame = 0xFFFFFF ; //フレーム枠色 cel = 0x3300FF ; //フレーム背景色 color = 0xFFFFFF ; //文字色 meter = 0x33FF66 ; //メーター色 meter_back = 0x000000 ; //メーター背景色 q_button = 0 ; //画質変更ボタンを表示する:0 autoplay = 0 ; //ロード終了後自動再生する:1 menu = 0 ; //右クリックメニューを非表示にする:1 preview = 0 ; //ロード画面をシミュレートする:1 count = 50 ; //(previewが1の場合)1フレームで読み込むシミュレートバイト数 licolor = 0 ; //オマケ:メーター色をカラフルにする:1(メーター色は無視されます) //-----<設定ここまで 以下構成部>--------------------------------------------------------------------------- if(le === undefined && pt === undefined){loader();} function loader() { hg = Math.floor(Stage.height / 2); wd = Math.floor(Stage.width / 2); //読み込み終了フラグ ct = 0; m = 0; //読み込み進行 pt = 0; tl = _root.getBytesTotal(); //背景 clear(); lineStyle(); beginFill(back); moveTo(0,0); lineTo(Stage.width,0); lineTo(Stage.width,Stage.height); lineTo(0,Stage.height); lineTo(0,0); endFill(); //中央フレーム描画 lineStyle(3, frame, 100); beginFill(cel, 100); moveTo(Stage.width / 10, hg + 20 - 50); lineTo(Math.floor(Stage.width - Stage.width / 10), hg + 20 - 50); lineTo(Math.floor(Stage.width - Stage.width / 10), hg + 20 - 50 + 40); lineTo(Stage.width / 10, hg + 20 - 50 + 40); endFill(); //進度表示 createTextField("loaded", 2, Math.floor(Stage.width / 10) + 5, hg + 20 - 50 + 9, Stage.width - Math.floor(Stage.width / 10) * 2 - 10, (hg + 20 + 20) - (hg + 20 - 50 + 40)); fm2 = new TextFormat(); fm2.size = 15; fm2.multiline = true; fm2.align = "center"; fm2.color = color; fm2.bold = true; loaded.selectable = false; loaded.setTextFormat(fm2); //上部フレーム描画 lineStyle(3, frame, 100); beginFill(cel, 100); moveTo(Math.floor(Stage.width / 10), hg + 20 - 80); lineTo(Stage.width - Math.floor(Stage.width / 3), hg + 20 - 80); lineTo(Stage.width - Math.floor(Stage.width / 3), hg + 20 - 50); lineTo(Math.floor(Stage.width / 10), hg + 20 - 50); endFill(); //メーターフレーム描画 lineStyle(1, 0xFFFFFF, 100); beginFill(meter_back, 100); moveTo(Math.floor(Stage.width / 10) + 5, hg + 20 - 80 + 5); lineTo(Math.floor(Stage.width / 5) + Math.floor(Stage.width / 10 + 8), hg + 20 - 80 + 5); lineTo(Math.floor(Stage.width / 5) + Math.floor(Stage.width / 10 + 8), hg + 20 - 50 - 5); lineTo(Math.floor(Stage.width / 10) + 5, hg + 20 - 50 - 5); endFill(); prg_b = createEmptyMovieClip("progress",60); //パーセンテージ表示 createTextField("part", 25, Math.floor(Stage.width / 10) + 5, hg + 20 - 80 + 5, Stage.width - Math.floor(Stage.width / 10) * 2 - 10, (hg + 20 + 20) - (hg + 20 - 50 + 40)); fm3 = new TextFormat(); fm3.size = 15; fm3.multiline = false; fm3.align = "center"; fm3.color = color; fm3.bold = true; part.selectable = false; part.setTextFormat(fm3); //画質ボタン if(q_button == 0){ lineStyle(3, frame, 100); beginFill(cel, 100); moveTo(Math.floor(Stage.width / 30), Stage.height - Math.floor(Stage.height / 5)); lineTo(Math.floor(Stage.width / 3), Stage.height - Math.floor(Stage.height / 5)); lineTo(Math.floor(Stage.width / 3), Stage.height - Math.floor(Stage.height / 15)); lineTo(Math.floor(Stage.width / 30), Stage.height - Math.floor(Stage.height / 15)); endFill(); createEmptyMovieClip("mc2",52).createTextField("tx3", 10, Math.floor(Stage.width / 16), Stage.height - Math.floor(Stage.height / 6), 15, 20); mc2.fm6 = new TextFormat(); mc2.fm6.size = 15; mc2.fm6.color = color; mc2.fm6.bold = true; mc2.tx3.selectable = false; mc2.tx3.text = "H"; mc2.onPress = hq; mc2.tx3.setTextFormat(mc2.fm6); createEmptyMovieClip("mc3",53).createTextField("tx4", 11, Math.floor(Stage.width / 7), Stage.height - Math.floor(Stage.height / 6), 20, 20); mc3.fm4 = new TextFormat(); mc3.fm4.size = 15; mc3.fm4.color = color; mc3.fm4.bold = true; mc3.tx4.selectable = false; mc3.tx4.text = "M"; mc3.onPress = mq; mc3.tx4.setTextFormat(mc3.fm4); createEmptyMovieClip("mc4",54).createTextField("tx5", 12, Math.floor(Stage.width / 4), Stage.height - Math.floor(Stage.height / 6), 20, 20); mc4.fm5 = new TextFormat(); mc4.fm5.size = 15; mc4.fm5.color = color; mc4.fm5.bold = true; mc4.tx5.selectable = false; mc4.tx5.text = "L"; mc4.onPress = lq; mc4.tx5.setTextFormat(mc4.fm5); } //メニュー非表示設定 if(menu == 1){ Stage.showMenu = false; }else{ Stage.showMenu = true; } }; function hq(){_quality="high";}; function mq(){_quality="medium";}; function lq(){_quality="low";}; function start (){ //下部フレーム描画 lineStyle(3, frame, 100); beginFill(cel, 100); moveTo( wd - 25 - 10, hg + 20 - 5); lineTo( wd - 25 - 5 + 60, hg + 20 - 5); lineTo( wd - 25 - 5 + 60, hg + 20 - 5 + 30); lineTo( wd - 25 - 10, hg + 20 - 5 + 30); endFill(); //スタートボタン描画 createEmptyMovieClip("mc1",50).createTextField("tx1", 6, wd - 25, hg + 20, 50, 20); mc1.fm1 = new TextFormat(); mc1.fm1.size = 15; mc1.fm1.color = 0x000000; mc1.fm1.bold = true; mc1.tx1.selectable = false; mc1.tx1.text = "PLAY"; mc1.onRelease = fin; mc1.onRollOver = function(){mc1.fm1.color = 0xCCCCFF; mc1.tx1.setTextFormat(mc1.fm1);}; mc1.onRollOut = function(){mc1.fm1.color = 0x000000; mc1.tx1.setTextFormat(mc1.fm1);}; mc1.tx1.setTextFormat(mc1.fm1); }; function fin(){ //再生開始後の処理 _root.play(); }; onEnterFrame = function(){ //ロード完了待機 if(le < tl){ if(_root._CurrentFrame > 1){ _root.gotoAndStop(1); } }else{ if(m == 0){ loader(); _root.gotoAndStop(1); m = 1; } } //シミュレーション設定 if(le === undefined){le = 0;} if(preview == 1){ if(le < tl){ le += count; }else if(le >= tl){ le = tl; } }else if(preview == 0){ le = _root.getBytesLoaded(); } //読み込み完了パーセンテージ計算 pt = Math.floor(le / tl * 100); part.text = pt + " %"; part.setTextFormat(fm3); loaded.text = Math.floor(le / 1024) + " KBytes / " + Math.floor(tl / 1024) + " KBytes"; loaded.setTextFormat(fm2); //読み込み完了処理 if(le >= tl && ct == 0){ ct = 1; } if(ct == 1){ if(autoplay != 1){ start(); ct = 2; }else{ fin(); ct = 2; } } //メーター設定 barx = Math.floor(Stage.width / 10 + 7); bary = hg + 20 - 80 + 7; locx = Math.floor((le / tl) * Stage.width / 5) + barx; locy = hg + 20 - 50 - 6; //レインボーメーター色作成 if(licolor == 0){ lcm = meter; }else{ lcm = Math.floor(Math.random() * 156 + 100) * 0x10000 + Math.floor(Math.random() * 156 + 100) * 0x100 + Math.floor(Math.random() * 156 + 100); } //メーター描画 prg_b.clear(); prg_b.lineStyle(1, 0xFFFFFF, 0); prg_b.beginFill(lcm, 100); prg_b.moveTo(barx, bary); prg_b.lineTo(locx, bary); prg_b.lineTo(locx, locy); prg_b.lineTo(barx, locy); prg_b.endFill(); };