123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- function XboxButtonAnimation () {
- var _intervalID = 0;
- var cyclesCounter = 0;
- var totFrames = 4; // NUMBER OF ANIMATION FRAMES
- var loadingTime_default = 2000;
- var frameDuration_default = 300;
- var exitDuration_default = 400;
- var cycles_default = 2;
- var LoadingTime = loadingTime_default;
- var FrameDuration = frameDuration_default;
- var ExitDuration = exitDuration_default;
- var Cycles = cycles_default;
-
- var cyclesCounter = 0;
-
- this.SetCycles = SetCycles;
- this.SetLoadingTime = SetLoadingTime;
- this.SetFrameDuration = SetFrameDuration;
- this.SetExitDuration= SetExitDuration;
- // --------
- this.ValidateInstance=ValidateInstance;
- this.Start=Start;
- this.RenderFrame=RenderFrame;
- this._ClearCallingInterval=_ClearCallingInterval;
- this._ClearCallingIntervalExit=_ClearCallingIntervalExit;
- this.FrameFactory=FrameFactory;
- this.Reset=Reset;
- this.Exit=Exit;
-
- // Properties
- function SetCycles(cycles) {
- Cycles = !isNaN(cycles) ? cycles : 0;
- }
-
- function SetExitDuration(exitduration) {
- ExitDuration = !isNaN(exitduration) ? exitduration : 0;
- }
- function SetFrameDuration(frameduration) {
- FrameDuration = !isNaN(frameduration) ? frameduration : 0;
- }
- function SetLoadingTime(loadingtime) {
- LoadingTime = !isNaN(loadingtime) ? loadingtime : 0;
- }
- // Methods
- function ValidateInstance() {
- if (isNaN(Cycles) || (Cycles==0)) Cycles = cycles_default;
- if (isNaN(LoadingTime) || (LoadingTime==0)) LoadingTime = loadingTime_default;
- if (isNaN(FrameDuration) || (FrameDuration==0)) FrameDuration = frameDuration_duration;
- if (isNaN(ExitDuration) || (ExitDuration==0)) ExitDuration = exitDuration_duration;
- }
-
- function Start() {
- ValidateInstance();
- cyclesCounter = Cycles;
- FrameFactory(1);
- }
-
- function RenderFrame(step) {
- $('.xbox').attr( 'src', 'img/button_xbox3_frame_' + step + '.gif' );
- }
-
- function _ClearCallingInterval() {
- if (_intervalID!=0) window.clearTimeout(_intervalID);
- }
- function _ClearCallingIntervalExit() {
- if (_intervalID!=0) window.clearInterval(_intervalID);
- }
- function FrameFactory(iframe) {
- _ClearCallingInterval();
- RenderFrame(iframe);
- if (iframe==1 && (cyclesCounter==Cycles)) {
- // FROM THE FIRST FRAME
- _intervalID=window.setTimeout(function() {FrameFactory(iframe+1);}, LoadingTime);
- } else {
- if (iframe==totFrames) {
- // LAST FRAME
- cyclesCounter--;
- if (cyclesCounter>=1) {
- // LOAD FIRST FRAME
- _intervalID=window.setTimeout(function() {FrameFactory(1);}, FrameDuration);
- } else {
- // END ANIMATION
- _intervalID=window.setTimeout(function() {Exit(true);}, FrameDuration);
- }
- } else {
- // NORMAL LOAD
- _intervalID=window.setTimeout(function() {FrameFactory(iframe+1);}, FrameDuration);
- }
- }
- }
-
- function Reset() {
- _ClearCallingIntervalExit();
- cyclesCounter=Cycles;
- $('.xbox').attr( 'src', 'img/button_xbox3.gif' );
- }
-
- function Exit(success) {
- _intervalID=window.setInterval(function() {Reset();}, ExitDuration);
- if (success) window.open( $('#xboxlink').attr( 'value' ) , '' ,'_blank');
- }
- }
- var PageXboxButtonAni = null;
- <!-- Click - Event Handler -->
- $(function() {
- $(".xbox").click(function () {
- // Xbox Animation
- if (!PageXboxButtonAni) {
- PageXboxButtonAni = new XboxButtonAnimation();
- PageXboxButtonAni.SetCycles(2);
- PageXboxButtonAni.SetLoadingTime(2000);
- PageXboxButtonAni.SetFrameDuration(300);
- PageXboxButtonAni.SetExitDuration(400);
- PageXboxButtonAni.Start();
- PageXboxButtonAni = null;
- }
- })
- })
|