【发布时间】:2015-02-20 04:40:58
【问题描述】:
好的,所以当我运行 loader.swf 时,它可以很好地加载我的 game.swf。但是当我刺激下载时,恰好在 70% 时,我的 game.swf 音乐开始播放,并显示以下错误:
TypeError:错误 #1009:无法访问空对象引用的属性或方法。 在 GAME_fla::MainTimeline/frame11()
还有
错误 #2044:未处理的 IOErrorEvent:。 text=Error #2036:加载从未完成。
正常加载时游戏运行良好。当我在线上传并检查它是否正常工作时,此问题仍然存在。它没有。我的加载器适用于其他 swf 文件。如何解决这个问题?
第 1 层第 11 帧的代码
import flash.media.SoundChannel;
var bgmusic2: loverswalk = new loverswalk;
var bgmusic: spring = new spring;
var forestmusic: NatureAmbiance = new NatureAmbiance;
var cafemusic: cafeteria1 = new cafeteria1;
var shopmusic: pamfluiteloop = new pamfluiteloop;
var cash: CashRegisterChaChing = new CashRegisterChaChing;
var beeps: beep = new beep;
var musicboxsound: BlaclRockShooterMusicBox = new BlaclRockShooterMusicBox;
var failsound: fail = new fail;
var stgup: stageup = new stageup;
var talkbg: talkbag = new talkbag;
var ca: correct = new correct;
var myChannel: SoundChannel = new SoundChannel();
var bg: SoundChannel = new SoundChannel();
var mb: SoundChannel = new SoundChannel();
var myChanneltalk: SoundChannel = new SoundChannel();
var lastpositionbg: Number = 0;
var moodshop = 0;
var dilbgrun = 0;
var alertsound: alert = new alert;
第 2 层,第 20 帧
var hp: int = 100;
var day: int = 1;
var week: int = 1;
var money: Number = 0;
var pendants: int = 0;
var bracelets: int = 0;
var comics: int = 0;
var poetrys: int = 0;
var tshirts: int = 0;
var named: String = "Driver";
var age: int = 17;
var reply: int = 0;
var dilrun: String = " ";
var ncpvar: int = -1;
var ncpvare: int = -1;
var ncpvarm: int = -1;
var flavie_stage: int = 0;
var shannon_stage: int = 0;
var vivette_stage: int = 0;
var audrey_stage: int = 0;
var gabriel_stage: int = 0;
var toret: int = 0;
function refresh1(event: Event): void {
Object(this).bar.hp_text.text = String(hp);
Object(this).bar.day_text.text = String(day);
Object(this).bar.week_text.text = String(week);
Object(this).bar.money_text.text = String(money);
}
function bedbtn(event: MouseEvent): void {
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "You slept a night and gained a massive 100 HP. Enjoy!";
hp = 100;
day = day + 1;
if (day == 8) {
day = 1;
week = week + 1;
}
}
function woman(event: MouseEvent): void {
if (event.target == audrey_btn) {
if (hp >= 30) {
hp = hp - 30;
dilrun = "Audrey";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "Go get some more HP silly!";
}
}
if (event.target == shannon_btn) {
if (hp >= 30) {
hp = hp - 30;
dilrun = "Shannon";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "Go get some more HP silly!";
}
}
if (event.target == vivette_btn) {
if (hp >= 30) {
hp = hp - 30;
dilrun = "Vivette";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "Go get some more HP silly!";
}
}
if (event.target == gabriel_btn) {
if (hp >= 30) {
hp = hp - 30;
dilrun = "Gabriel";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "Go get some more HP silly!";
}
}
if (event.target == flavie_btn) {
if (hp >= 30) {
hp = hp - 30;
dilrun = "Flavie";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "Go get some more HP silly!";
}
}
}
function NCP(event: MouseEvent): void {
if (event.target == odile_btn) {
if (hp >= 10) {
hp = hp - 10;
dilrun = "Odile";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "You need more HP to talk to Odile.";
}
}
if (event.target == elias_btn) {
if (hp >= 10) {
hp = hp - 10;
dilrun = "Elias";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "You need more HP to talk to Elias.";
}
}
if (event.target == mikel_btn) {
if (hp >= 10) {
hp = hp - 10;
dilrun = "Mikel";
dial_mc.gotoAndPlay("Dialogue");
} else {
alertsound.play();
alert_mc.gotoAndStop("Alert");
alert_mc.alert_mc.alert_text.text = "You need more HP to talk to Mikel.";
}
}
}
function buy(event: MouseEvent): void {
if (event.target == gifts_btn) {
Object(this).menu_mc.gotoAndStop("Shop");
}
if (event.target == buy_food_btn) {
Object(this).menu_mc.gotoAndStop("Cafe");
}
}
function job(event: MouseEvent): void {
alertsound.play();
alert_mc.gotoAndStop("Alert");
if (event.target == job1_btn) {
if (hp >= 40) {
hp = hp - 40;
money = money + 30;
alert_mc.alert_mc.alert_text.text = "You earnt 30 for 40 HP";
} else if (hp < 40) {
alert_mc.alert_mc.alert_text.text = "You don't have 40 HP to that. Better sleep or eat to gain more HP.";
}
}
if (event.target == job2_btn) {
if (hp >= 30) {
hp = hp - 30;
money = money + 20;
alert_mc.alert_mc.alert_text.text = "You earnt 20 for 30 HP";
} else if (hp < 30) {
alert_mc.alert_mc.alert_text.text = "You don't have 30 HP to that. Better sleep or eat to gain more HP.";
}
}
if (event.target == job3_btn) {
if (hp >= 20) {
hp = hp - 20;
money = money + 10;
alert_mc.alert_mc.alert_text.text = "You earnt 10 for 20 HP";
} else if (hp < 20) {
alert_mc.alert_mc.alert_text.text = "You don't have 20 HP to that. Better sleep or eat to gain more HP.";
}
}
}
如果我添加它们,其他框架将无法访问这些变量。
之前的加载器代码:
var myrequest: URLRequest = new URLRequest("GAME.swf");
var myloader: Loader = new Loader();
myloader.load(myrequest);
myloader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progresshandler);
function progresshandler(myevent: ProgressEvent): void {
var myprogress: Number = myevent.target.bytesLoaded / myevent.target.bytesTotal;
bar_mc.scaleX = myprogress;
percentage_text.text = Math.round(myprogress * 100) + "%";
}
myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, finished);
function finished(myevent: Event): void {
addChild(myloader);
removeChild(percentage_text);
removeChild(bar_mc);
removeChild(background_mc);
}
加载器代码之后:
var myrequest: URLRequest = new URLRequest("GAME.swf");
import flash.net.URLRequest;
import flash.display.MovieClip;
import flash.events.Event;
var myloader: Loader = new Loader();
myloader.load(myrequest);
function progresshandler(myevent: ProgressEvent): void {
var myprogress: Number = myevent.target.bytesLoaded / myevent.target.bytesTotal;
bar_mc.scaleX = myprogress;
percentage_text.text = Math.round(myprogress * 100) + "%";
}
myloader.contentLoaderInfo.addEventListener(Event.INIT, finished);
myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, completes);
function finished(myevent: Event): void {
addChild(myloader);
removeChild(percentage_text);
removeChild(bar_mc);
removeChild(background_mc);
}
function completes(myevent: Event): void {
var loaderInfo: LoaderInfo = myevent.target as LoaderInfo;
var swf: Object = loaderInfo.content;
swf.play();
}
【问题讨论】:
标签: actionscript-3 flash loader