Temat: [AS3] Nie kończąc się skrypt

Witam. Mam pewien problem. Otóż Robię film we flashu (nie strona!) i podczas pracy nad fajnym efektem wody, na światło dzienne wyszedł jeden z wielu błędów, jakie już napotkałem. Z tym jednak potrzebuję pomocy.
Sytuacja właściwa. Skrypt tworzący efekt wody wykonuje się cały czas, a chciałbym, żeby wykonywał się tylko w konkretnym miejscu. Oczywiście odpala się dopiero kiedy dojdzie do klatki, z owym skryptem, ale jak na przykład przejdę do innej sceny, skrypt wykonuje się dalej, wywalając błąd: "TypeError: Error #1009: Nie można uzyskać dostępu do właściwości lub metody dla odniesienia do obiektu null. at animaccja_fla::MainTimeline/initapp() [animaccja_fla.MainTimeline::frame277:29]".

Oto kod:


import flash.display.*;
import flash.geom.*;
import flash.filters.*;

SoundMixer.soundTransform = new SoundTransform(1, 0);
stage.addEventListener(Event.ENTER_FRAME, initapp);

var myBitmap:BitmapData;
var pt:Point;
var mpoint:Point;
var myDispl:DisplacementMapFilter;
var i:Number;
var filterList:Array;
var offset:Array;
var myList:Array;

myBitmap = new BitmapData(500,220,false,0);
var bm=new Bitmap(myBitmap);
//addChild(bm); //uncomment to see the noise source
pt = new Point(0,0);
mpoint = new Point(0,0);
myDispl = new DisplacementMapFilter(myBitmap, mpoint,1,2,10,50);
i = 1;
myList = [myDispl];
water_mc.filters = myList;
offset=[new Point(),new Point(),new Point()];

function initapp(e:Event):void {
filterList = water_mc.filters;
offset[0].x = i;
offset[0].y = i/8;
myBitmap.perlinNoise(45,5,3,50,true,false, 7,true,offset);
filterList.mapBitmap = myBitmap;
water_mc.filters = filterList;
i++;
}

Jak to zatrzymać?
Piotr Rachtan

Piotr Rachtan Lead Flash Platform
Developer /
Shockwave Developer

Temat: [AS3] Nie kończąc się skrypt

stage.removeEventListener(Event.ENTER_FRAME, initapp);

Temat: [AS3] Nie kończąc się skrypt

Jesteś wielki! Dzięki!
Jerzy Wierzchowski

Jerzy Wierzchowski Senior Software
Developer

Temat: [AS3] Nie kończąc się skrypt

:)



Wyślij zaproszenie do