I've had some help here with this before and maybe it belongs in the AS3 forum but seeing as I'm a n00b I thought I post here.
I have some buttons that I got from this tut http://bit.ly/4XSrr0 I have got two working exactly the way I want but when I try and add new ones to the script the buttons start flashing on and off and they don't link anywhere, I don't have any error messages, just blinking buttons with no rollover state either?
Does any one have any ideas on how they would add new buttons to this script?
Game.as code:
Code:package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.net.navigateToURL; import flash.net.URLRequest; public class Game extends MovieClip { private var startButton:JitteryButton; private var menuButton:JitteryButton; // CLASS CONSTRUCTOR public function Game() { // create the jittery buttons from the simple buttons on the stage // Button 1 startButton = new JitteryButton(button1); addChild(startButton); buttonF(startButton,"link that works "); // Button 2 menuButton = new JitteryButton(button2); addChild(menuButton); buttonF(menuButton,"link that works "); } private function buttonF(btn:JitteryButton,urlS:String):void{ btn.urlS=urlS; btn.addEventListener(MouseEvent.CLICK,buttonClickF); } private function buttonClickF(e:MouseEvent){ var btn:MovieClip = MovieClip(e.currentTarget); trace("button url: "+btn.urlS); navigateToURL(new URLRequest(btn.urlS), "_self"); } } }
Jitter button.as code:
ThanksCode:package { import flash.display.MovieClip; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.DisplacementMapFilter; import flash.filters.DisplacementMapFilterMode; import flash.geom.Point; import flash.media.Sound; import caurina.transitions.Tweener; public class JitteryButton extends MovieClip{ public var urlS:String; private var myButton:MovieClip; private var staticTimes:int; private var fuzzMin:int; private var fuzzMax:int; private var dmFilter:DisplacementMapFilter = createDMFilter(); private var staticSound:Sound = new StaticSound(); // CLASS CONSTRUCTOR public function JitteryButton(button:MovieClip) { myButton = button; addChild(myButton); //removes from previous parent. This may screw up relative positioning. // add the rollover event listeners to the button myButton.addEventListener(MouseEvent.ROLL_OVER, onButtonRollOver); myButton.addEventListener(MouseEvent.ROLL_OUT, onButtonRollOut); // start displaying the static effect addEventListener(Event.ENTER_FRAME, displayStatic); } // increase the intensity of the static to HIGH private function setStaticHigh(e:MouseEvent = null):void { fuzzMin = 12; fuzzMax = 25; staticTimes = 12; } // called on button ROLL_OVER private function onButtonRollOver(e:MouseEvent):void { Tweener.addTween(myButton, {scaleX: 1.1, time: .5, transition: "easeOutElastic"}); setStaticHigh(); staticSound.play(); } // called on button ROLL_OOUT private function onButtonRollOut(e:MouseEvent):void { Tweener.addTween(myButton, {scaleX: 1, time: .5, transition: "easeOutElastic"}); setStaticMedium(); } // increase the intensity of the static to MEDIUM private function setStaticMedium(e:MouseEvent = null):void { fuzzMin = 2; fuzzMax = 6; staticTimes = randRange(8, 12); } // called on ENTER_FRAME private function displayStatic(e:Event):void { staticTimes--; dmFilter.scaleX = randRange(fuzzMin, fuzzMax); dmFilter.mapPoint = new Point(0, randRange(0, -160)); myButton.filters = new Array(dmFilter); if(staticTimes <= 0){ fuzzMin = 0; fuzzMax = 2; } } // create the displacement map filter private function createDMFilter():DisplacementMapFilter { var mapBitmap:BitmapData = new StaticMap(0,0); // use the bitmapdata from our StaticMap image var mapPoint:Point = new Point(0, 0); // this is the position of the StaticMap image in relation to our button var channels:uint = BitmapDataChannel.RED; // which color to use for displacement var componentX:uint = channels; var componentY:uint = channels; var scaleX:Number = 5; // the amount of horizontal shift var scaleY:Number = 1; // the amount of vertical shift var mode:String = DisplacementMapFilterMode.COLOR; var color:uint = 0; var alpha:Number = 0; return new DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, scaleX, scaleY, mode, color, alpha ); } // returns a random number between the specified range (inclusive) private function randRange(min:int, max:int):int { var randomNum:int = Math.floor(Math.random() * (max - min + 1)) + min; return randomNum; } } }


Reply With Quote
