Я использую SWF (accueil) внутри другого SWF (ranchleblanc_fr), и это приводит к появлению ошибки 1009:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at accueil_fla::MainTimeline/frame1()"
Первый SWF-файл имеет эффект частиц, и он не запустится при первой загрузке страницы. Если я нажму на любую кнопку главной страницы и вернусь к следующей странице, эффект сработает. Но если я снова нажму на другую кнопку, я получу еще одну ошибку 1009, но на этот раз она появляется не только один раз. Он появляется снова и снова, пока я не закрою SWF.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at accueil_fla::MainTimeline/newFlake()"
Я включу код, но прежде чем сделать это, я должен сказать, что я установил флажок, чтобы разрешить отладку в настройках публикации, и у меня нет номера строки, чтобы найти ошибку. Я использовал трассировку и обнаружил, что переменная null
равна flake
. Я искал в Интернете, чтобы выяснить, как решить мою проблему, и я думаю, что мне нужно использовать оператор if, поэтому убедитесь, что программа работает с переменной null
. Я думаю, что я должен проверить, является ли переменная flake null
, и если это так, объявить какое-то значение для нее.
Проблема в том, что я знаю, как закодировать этот оператор if ...
Вот мой код для accueil_fla, кадр 1 (где можно найти все действия для этого флага)
for (var i:uint = 0; i < 50; i++)
{
flake.x = Math.random() * stage.stageWidth;
flake.y = Math.random() * stage.stageHeight;
flake.alpha = randRange(.3,1);
flake.scaleX = flake.scaleY = randRange(.3,1);
addChild(flake);
}
function randRange(low:Number, high:Number):Number
{
var randNum:Number = Math.random() * (high - low) + low;
return randNum;
}
this.addEventListener(Event.ENTER_FRAME, newFlake);
function newFlake(e:Event):void
{
var flake:Snowflake = new Snowflake(randRange(-1,1), randRange(2,5));
flake.x = Math.random() * stage.stageWidth;
flake.y = -5;
flake.alpha = randRange(.3,1);
flake.scaleX = flake.scaleY = randRange(.3,1);
addChild(flake);
}
var flake:Snowflake = new Snowflake(randRange(-1,1), randRange(2,5));
Я также могу включить код для главной страницы, чтобы исправить, почему эффект частиц снега не работает при первой загрузке.
//----------------initialization---------------\\
extLoader_mc.visible = false;
//--------------------loader------------------------\\
var loader:Loader = new Loader;
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, preload);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
function preload (e:ProgressEvent):void
{
extLoader_mc.visible = true;
var pct:Number = e.bytesLoaded / e.bytesTotal;
extLoader_mc.extLoaderBar_mc.scaleX = pct;
}
function done (e:Event):void
{
extLoader_mc.visible = false;
canvas_mc.addChild(loader);
}
//-----------------------end loader----------------\\
var firstLoad:URLRequest = new URLRequest("accueil.swf");
loader.load(firstLoad);
var currentPage:MovieClip;
currentPage=accueil_mc;
currentPage.gotoAndPlay("down");
accueilHit_mc.targetmc = accueil_mc;
aProposHit_mc.targetmc = aPropos_mc;
animauxHit_mc.targetmc = animaux_mc;
locationHit_mc.targetmc = location_mc;
contactHit_mc.targetmc = contact_mc;
accueilHit_mc.buttonMode = true;
aProposHit_mc.buttonMode = true;
animauxHit_mc.buttonMode = true;
locationHit_mc.buttonMode = true;
contactHit_mc.buttonMode = true;
function el ()
{
accueilHit_mc.addEventListener(MouseEvent.CLICK, accueilPage);
accueilHit_mc.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
accueilHit_mc.addEventListener(MouseEvent.MOUSE_OUT, btnOut);
//aProposHit_mc.addEventListener(MouseEvent.CLICK, aProposPage);
aProposHit_mc.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
aProposHit_mc.addEventListener(MouseEvent.MOUSE_OUT, btnOut);
//animauxHit_mc.addEventListener(MouseEvent.CLICK, animauxPage);
animauxHit_mc.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
animauxHit_mc.addEventListener(MouseEvent.MOUSE_OUT, btnOut);
locationHit_mc.addEventListener(MouseEvent.CLICK, locationPage);
locationHit_mc.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
locationHit_mc.addEventListener(MouseEvent.MOUSE_OUT, btnOut);
contactHit_mc.addEventListener(MouseEvent.CLICK, contactPage);
contactHit_mc.addEventListener(MouseEvent.MOUSE_OVER, btnOver);
contactHit_mc.addEventListener(MouseEvent.MOUSE_OUT,btnOut);
}
function btnOver (e:MouseEvent):void
{
e.currentTarget.targetmc.gotoAndPlay("over");
}
function btnOut (e:MouseEvent):void
{
e.currentTarget.targetmc.gotoAndPlay("out");
}
function handCursor ()
{
accueilHit_mc.useHandCursor = true;
aProposHit_mc.useHandCursor = true;
animauxHit_mc.useHandCursor = true;
locationHit_mc.useHandCursor = true;
contactHit_mc.useHandCursor = true;
accueilHit_mc.enabled = true;
aProposHit_mc.enabled = true;
animauxHit_mc.enabled = true;
locationHit_mc.enabled = true;
contactHit_mc.enabled = true;
}
el();
accueilHit_mc.removeEventListener(MouseEvent.CLICK, accueilPage);
accueilHit_mc.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
accueilHit_mc.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
handCursor();
accueilHit_mc.useHandCursor = false;
accueilHit_mc.enabled = false;
function accueilPage (e:MouseEvent):void
{
currentPage.gotoAndPlay("out");
var req:URLRequest = new URLRequest("accueil.swf");
loader.load(req);
el();
accueilHit_mc.removeEventListener(MouseEvent.CLICK, accueilPage);
handCursor();
accueilHit_mc.useHandCursor = false;
accueilHit_mc.enabled = false;
accueilHit_mc.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
accueilHit_mc.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
accueil_mc.gotoAndStop("down");
currentPage=accueil_mc;
}
function aProposPage (e:MouseEvent):void
{
currentPage.gotoAndPlay("out");
var req:URLRequest = new URLRequest("aPropos.swf");
loader.load(req);
el();
aProposHit_mc.removeEventListener(MouseEvent.CLICK, aProposPage);
handCursor();
aProposHit_mc.useHandCursor = false;
aProposHit_mc.enabled = false;
aProposHit_mc.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
aProposHit_mc.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
aPropos_mc.gotoAndStop("down");
currentPage=aPropos_mc;
}
function animauxPage (e:MouseEvent):void
{
currentPage.gotoAndPlay("out");
var req:URLRequest = new URLRequest("animaux_fr.swf");
loader.load(req);
el();
animauxHit_mc.removeEventListener(MouseEvent.CLICK, animauxPage);
handCursor();
animauxHit_mc.useHandCursor = false;
animauxHit_mc.enabled = false;
animauxHit_mc.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
animauxHit_mc.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
animaux_mc.gotoAndStop("down");
currentPage=animaux_mc;
}
function locationPage (e:MouseEvent):void
{
currentPage.gotoAndPlay("out");
var req:URLRequest = new URLRequest("location.swf");
loader.load(req);
el();
locationHit_mc.removeEventListener(MouseEvent.CLICK, locationPage);
handCursor();
locationHit_mc.useHandCursor = false;
locationHit_mc.enabled = false;
locationHit_mc.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
locationHit_mc.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
location_mc.gotoAndStop("down");
currentPage=location_mc;
}
function contactPage (e:MouseEvent):void
{
currentPage.gotoAndPlay("out");
var req:URLRequest = new URLRequest("contact.swf");
loader.load(req);
el();
contactHit_mc.removeEventListener(MouseEvent.CLICK, contactPage);
handCursor();
contactHit_mc.useHandCursor = false;
contactHit_mc.enabled = false;
contactHit_mc.removeEventListener(MouseEvent.MOUSE_OVER, btnOver);
contactHit_mc.removeEventListener(MouseEvent.MOUSE_OUT, btnOut);
contact_mc.gotoAndStop("down");
currentPage=contact_mc;
}
Еще раз спасибо за вашу помощь, это очень ценится.