import mx.utils.Delegate; class Mullvad { var mullvad:MovieClip; var hitarea_mc:MovieClip; var mc:MovieClip; var hojd:Number; var bredd:Number; var lager:Number; var x:Number; var y:Number; var startY:Number; var klockId:Number; var riktning:String = "stilla"; var filmbredd:Number = 550; private var intervalId:Number; private var duration:Number = 20; var gubbe_mc:MovieClip; var gubben:Gubbe; function Mullvad(mc:MovieClip, gubben:Gubbe, startX:Number, startY:Number, lager:Number) { this.mc = mc; this.lager = lager; this.gubben = gubben; skapaMullvadsInstans(mc, startX, startY, lager); this.gubbe_mc = gubben.falis; beginInterval(); } private function skapaMullvadsInstans(mc:MovieClip, startX:Number, startY:Number, lager:Number):Void { this.mc = mc; this.startY = startY; trace("Mullvad skapad"); this.mullvad = mc.attachMovie("Mullvad", "x", lager); this.hitarea_mc = mc.attachMovie("MullvadHitarea", "y", lager+1); var sidproportioner:Number = mullvad._height/mullvad._width; this.hojd = 40; this.bredd = this.hojd/sidproportioner; this.mullvad._height = this.hojd; this.mullvad._width = this.bredd; this.mullvad._x = startX; this.mullvad._y = startY; this.x = this.mullvad._x; this.y = this.mullvad._y; this.hitarea_mc._x = this.x; this.hitarea_mc._y = this.y+10; this.hitarea_mc._height = 5; this.hitarea_mc._width = 5; } private function beginInterval():Void { if (intervalId != null) { clearInterval(intervalId); } intervalId = setInterval(this, "checkHit", duration); } private function checkHit():Void { //trace("check"); if (this.mullvad.klar == true) { trace("klar= "+this.mullvad.klar); clearInterval(intervalId); var max:Number = 5000; var min:Number = 100; var sleep:Number = Math.floor(Math.random()*(max-min+1))+min; intervalId = setInterval(this, "nyMullvadEfterHit", sleep); } if (this.gubbe_mc.hitTest(this.hitarea_mc) && this.mullvad.klar == false) { trace("hit"); this.gubben.stoppa(); this.mullvad.gotoAndPlay("explosion"); //trace("Gubb._x="+this.gubbe_mc._x); clearInterval(intervalId); var max:Number = 1000; var min:Number = 1000; var sleep:Number = Math.floor(Math.random()*(max-min+1))+min; intervalId = setInterval(this, "nyMullvadEfterHit", sleep); } else { //trace("isär"); } } function nyMullvadEfterHit() { var max:Number = 540; var min:Number = 10; var xpos:Number = Math.floor(Math.random()*(max-min+1))+min; skapaMullvadsInstans(this.mc, xpos, this.startY, this.lager); beginInterval(); } }