заменить ошибочную строку (27) на
if(parent){
parent.removeChild(this);
this.removeEventListener(Event.ENTER_FRAME, update);
}
убедитесь, что родитель действительно существует первым.
вы также захотите удалить прослушиватель событий, чтобы предотвратить ужасную утечку памяти.
В методеInfo-6 ()
Итак, я уже видел такое сообщение раньше, но это было давно. MethodInfo-функции - это действительно внутренние функции в Flash Player, и они не должны вызывать у вас ошибки ... Если память мне не изменяет, я столкнулся с этим в коде, написанном кем-то другим, в котором они пытаются выполнить действие с помощью SWF который еще не загружен ... или, возможно, выполняет действие из загруженного SWF-файла, которое он еще не мог выполнить во время вызова кода.
Итак, давайте посмотрим, сможем ли мы немного разобраться с вашими проблемами.
Внутри вашего файла acuiel_fla у вас есть несколько вещей, которые вы делаете в кадре 1, которые предполагают, что acuiel_fla является основной временной шкалой , которой не будет! Попробуйте что-то вроде этого ...
// on frame 1...
// first, check if you even have a stage. If not, wait to be added!
if(stage){
init();
}else{
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
// MOVE THE addEventListener call for ENTER_FRAME here!
function init(e:Event = null):void{
this.addEventListener(Event.ENTER_FRAME, newFlake);
this.addEventListener(Event.REMOVED_FROM_STAGE, removedFromStage);
}
// AND REMOVE the ENTER_FRAME listener if you are ever removed
// from the stage.
function removedFromStage(e:Event):void{
this.removeEventListener(Event.ENTER_FRAME, newFlake);
}
function randRange(low:Number, high:Number):Number
{
var randNum:Number = Math.random() * (high - low) + low;
return randNum;
}
// DO NOT CALL IT HERE.
//this.addEventListener(Event.ENTER_FRAME, newFlake);
function newFlake(e:Event):void
{
if(!stage) return; // we are not on stage so we can't
// do anything here!
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);
}
// do not instantiate your new flake here... just leave it for the enterframe.