home *** CD-ROM | disk | FTP | other *** search
- class games.MovingScene extends AsBroadcaster
- {
- var sceneMC;
- var sceneArea;
- var scenesTable;
- function MovingScene(containerMC, d, w, h)
- {
- super();
- this.sceneMC = containerMC.createEmptyMovieClip("movingscene" + d,d);
- this.sceneArea = {_width:w,_height:h};
- this.scenesTable = new Array();
- AsBroadcaster.initialize(this);
- }
- function moveBackground(scene, speed)
- {
- var tMC = scene.MC;
- var cMC = scene.container;
- tMC._x = Math.ceil(tMC._x + speed);
- var p;
- var gb_inC = tMC.getBounds(cMC);
- var gb_inT = tMC.getBounds();
- if(gb_inC.xMax < this.sceneArea._width)
- {
- p = scene.element.createElement(tMC);
- var tname = tMC._name;
- var tdepth = tMC.getDepth();
- var tposY = tMC._y;
- var tposX = tMC._x;
- var tScale = tMC._yscale;
- var bitmap = scene.bitmap = new flash.display.BitmapData(gb_inC.xMax + p.width,tMC._height,true,0);
- bitmap.draw(cMC);
- tMC.removeMovieClip();
- tMC = cMC.createEmptyMovieClip(tname,tdepth);
- tMC._y = tposY;
- tMC._yscale = tScale;
- Object(tMC).attachBitmap(bitmap,0,true,false);
- scene.broadcastMessage("onNewSceneElement",scene.upper,tMC._width,!scene.upper ? scene.posY - p.height : scene.posY + p.height);
- }
- }
- function moveScene(moveby)
- {
- var obj;
- for(var pos in this.scenesTable)
- {
- obj = this.scenesTable[pos];
- this.moveBackground(obj,moveby * obj.multiplier);
- }
- }
- function getBitmapOf(bgno)
- {
- return this.scenesTable[bgno].bitmap;
- }
- function getMCOf(bgno)
- {
- return this.scenesTable[bgno].MC;
- }
- function getSceneMC()
- {
- return this.sceneMC;
- }
- function broadcastBackground(bgno)
- {
- var scene = this.scenesTable[bgno];
- scene.broadcastMessage = system.Delegate.create(this,this.broadcastMessage);
- }
- function addBackground(bgno, speedmultiplier, ypos, upper, w0, w1, h0, h1, wall0, slope0, wall1, slope1)
- {
- var scene = this.scenesTable[bgno] = new Object();
- var tMC = this.sceneMC.createEmptyMovieClip("scene" + bgno,1000 - bgno);
- tMC._y = ypos;
- tMC.cacheAsBitmap = true;
- if(upper != true)
- {
- tMC._yscale = -100;
- }
- scene.broadcastMessage = null;
- scene.multiplier = - speedmultiplier;
- scene.upper = upper;
- scene.posY = ypos;
- scene.container = tMC;
- tMC = scene.MC = tMC.createEmptyMovieClip("viewMC",0);
- tMC._x = this.sceneArea._width;
- scene.bitmap = new flash.display.BitmapData(0,0);
- scene.element = new games.MovingSceneElement(w0,w1,h0,h1,wall0,slope0,wall1,slope1,upper);
- scene.element.createElement(tMC);
- }
- }
-