2025-11-28 00:35:46 +09:00

891 lines
28 KiB
JavaScript

/*************************************************************************
*
* File: graphicsapi.js
*
* Description:
* Script that controls the gadget functionality for the
* "Graphics API" Desktop Gadget sample.
*
* This file is part of the Microsoft Windows SDK Code Samples.
*
* Copyright (C) Microsoft Corporation. All rights reserved.
*
* This source code is intended only as a supplement to Microsoft
* Development Tools and/or on-line documentation. See these other
* materials for detailed information regarding Microsoft code samples.
*
* THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
* KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
************************************************************************/
// Global Variables and Constants
var BKRND_ID = "background"; // ID of the g:background element
var BKRND_PATH = "images/background.png"; // Path of the background image
var BKRND_WIDTH = 130; // Width of the background image
var BKRND_HEIGHT = 220; // Height of the background image
var oImage; // Demo image g:image object
var IMG_PATH96 = "images/image96.png"; // Demo image path for 96 DPI
var IMG_PATH120 = "images/image120.png"; // Demo image path for 120 DPI
var IMG_PATH144 = "images/image144.png"; // Demo image path for 144 DPI
var IMG_WIDTH = 64; // Demo image width
var IMG_HEIGHT = 64; // Demo image height
var IMG_LEFT = 32; // Demo image left value
var IMG_TOP = 95; // Demo image top value
var TXT_FONT = "Calibri"; // Default font for text
var TXT_COLOR = "Color(255, 255, 255, 255)"; // Default color for text
var oAbstractText; // Abstract text g:text object
var TXT_ABSTRACT_LEFT = 7; // Abstract text left value
var TXT_ABSTRACT_TOP = 10; // Abstract text top value
var TXT_ABSTRACT_SIZE = 13; // Abstract text font size
var oText; // Demo text g:text object
var TXT_ANIMATION_LEFT = 16; // Demo text left value
var TXT_ANIMATION_TOP = 100; // Demo text top value
var TXT_ANIMATION_VALUE = "I <3 Gadgets"; // Demo text string value
var TXT_ANIMATION_SIZE = 18; // Demo text font size
var fPlaying = true; // Flag that indicates if Animations are currently running
var NAVBAR_ID = "navbar"; // ID of the Nav Bar element
var NAVBAR_PATH = "images/navbar.png"; // Nav Bar image path
var NAVBAR_WIDTH = 75; // Nav Bar image width
var NAVBAR_HEIGHT = 23; // Nav Bar image height
var NAVBAR_LEFT = 28; // Nav Bar image left value
var NAVBAR_TOP = 184; // Nav Bar image top value
var NAVBAR_BUTTONS = "prev play pause next"; // Button string to be parsed by initNavButtons()
var animationFuncs = new Array(); // List of animations to perform
var cFunction = 0; // Current function
var cAnimation = 1; // Current frame
var gadgetTimeout; // Frame timer object
var animationTemp1; // Temp storage slot 1 that an animation can use between frames
var animationTemp2; // Temp storage slot 2
var animationTemp3; // Temp storage slot 3
var animationTemp4; // Temp storage slot 4
var animationTemp5; // Temp storage slot 5
var animationTemp6; // Temp storage slot 6
var TICK_LEN = 75; // Length of a frame in milliseconds
var ANIMATION_LEN = 50; // Length in frames of an Animation
var dpiScaleFactor = 1.0; // Current system DPI scaling factor
// Called when the body is loaded
function loadMain()
{
initGadget();
animateGadget();
}
// Initialize necessary data/state
function initGadget()
{
// Determine the system DPI scaling factor
determineDPIScaleFactor();
// Init body
document.body.style.width = BKRND_WIDTH;
document.body.style.height = BKRND_HEIGHT;
// Init background image
var bkrnd = document.getElementById(BKRND_ID);
bkrnd.src = BKRND_PATH;
bkrnd.style.width = BKRND_WIDTH;
bkrnd.style.height = BKRND_HEIGHT;
// Init abstract text. Take into account the current system DPI when choosing the font size.
oAbstractText = document.getElementById(BKRND_ID).addTextObject("", TXT_FONT, TXT_ABSTRACT_SIZE * dpiScaleFactor, TXT_COLOR, 0, 0);
// Init demo image
initImage();
hideImage();
// Init demo text. Take into account the current system DPI when choosing the font size.
oText = document.getElementById(BKRND_ID).addTextObject(TXT_ANIMATION_VALUE, TXT_FONT, TXT_ANIMATION_SIZE * dpiScaleFactor, TXT_COLOR, 0, 0);
hideText();
// Init the navigation bar
initNavBar();
// Init the list of animation functions
initAnimationFunctions();
}
// Determine the current system DPI
function determineDPIScaleFactor()
{
// Calculate the horizontal scale factor that Internet Explorer is applying to determine the DPI
dpiScaleFactor = screen.deviceXDPI / screen.logicalXDPI;
}
// Initialize the demo image. Choose the appropriate image based on the current system DPI.
function initImage()
{
var imagePath = "";
if (dpiScaleFactor >= 1.5)
{
imagePath = IMG_PATH144;
}
else if (dpiScaleFactor >= 1.25)
{
imagePath = IMG_PATH120;
}
else
{
imagePath = IMG_PATH96;
}
oImage = document.getElementById(BKRND_ID).addImageObject(imagePath, 0, 0);
}
function updateAbstractText(newValue)
{
oAbstractText.value = newValue;
oAbstractText.width = 0;
oAbstractText.height = 0;
oAbstractText.left = TXT_ABSTRACT_LEFT;
oAbstractText.top = TXT_ABSTRACT_TOP;
}
// Reset the demo image to its default settings
function resetImage()
{
oImage.width = IMG_WIDTH * dpiScaleFactor;
oImage.height = IMG_HEIGHT * dpiScaleFactor;
oImage.left = IMG_LEFT * dpiScaleFactor;
oImage.top = IMG_TOP * dpiScaleFactor;
oImage.blur = 0;
oImage.brightness = 0;
oImage.opacity = 100;
oImage.rotation = 0;
oImage.softEdge = 0;
oImage.addGlow('white', 0, 0);
oImage.addShadow('white', 0, 0, 0, 0);
}
// Hide the demo image
function hideImage()
{
oImage.opacity = 0;
}
// Reset the demo text to its default settings
function resetText()
{
oText.left = TXT_ANIMATION_LEFT * dpiScaleFactor;
oText.top = TXT_ANIMATION_TOP * dpiScaleFactor;
oText.align = 0;
oText.blur = 0;
oText.brightness = 0;
oText.color = TXT_COLOR;
oText.font = TXT_FONT;
oText.fontSize = TXT_ANIMATION_SIZE * dpiScaleFactor;
oText.opacity = 100;
oText.rotation = 0;
oText.addGlow('white', 0, 0);
oText.addShadow('white', 0, 0, 0, 0);
}
// Hide the demo text
function hideText()
{
oText.opacity = 0;
}
// Initialize the Navigation Bar
function initNavBar()
{
var bar = document.getElementById(NAVBAR_ID);
var bkrnd = document.getElementById(BKRND_ID);
bar.style.backgroundImage = "URL(" + NAVBAR_PATH + ")";
hideNavBar();
initNavButtons();
bar_play.style.display="none";
bar_pause.style.display="";
}
// Creates and injects the html for the buttons into the Navigation Bar
function initNavButtons()
{
var bar = document.getElementById(NAVBAR_ID);
var barHTML = "";
var buttonHTML;
var buttonList = NAVBAR_BUTTONS.split(" ");
for (var i = 0; i < buttonList.length; i++)
{
var buttonName = buttonList[i];
if (buttonName == "-")
{
buttonHTML = "";
}
else
{
buttonHTML = "<a id='link_" + buttonName + "' href='javascript:void(0);' onClick='this.blur();'>"
+ "<img border=0 id='bar_" + buttonName + "' vspace='3' hspace='3' src='images/"+buttonName+"_rest.png' "
+ "onMouseOver='src=\"images/" + buttonName + "_hov.png\"' onMouseOut='src=\"images/" + buttonName + "_rest.png\"' "
+ "onMouseDown='src=\"images/" + buttonName + "_down.png\"' onMouseUp='src=\"images/" + buttonName + "_hov.png\";"
+ "onAction(\"" + buttonName + "\");' \>" + "</a>";
}
barHTML += buttonHTML;
}
bar.innerHTML = barHTML;
}
// Show the Navigation Bar
function showNavBar()
{
if(event.fromElement)
{
return;
}
var bar = document.getElementById(NAVBAR_ID);
bar.style.width = NAVBAR_WIDTH;
bar.style.height = NAVBAR_HEIGHT;
bar.style.left = NAVBAR_LEFT;
bar.style.top = NAVBAR_TOP;
}
// Hide the Navigation Bar
function hideNavBar()
{
if(event.toElement)
{
return;
}
var bar = document.getElementById(NAVBAR_ID);
bar.style.top = 0;
bar.style.left = parseInt(document.body.style.width) + 1;
}
// Called when a Navigation Bar action occurs, like when the user clicks on a button
function onAction(action)
{
if (event.button == 2 || event.button == 3)
{
return false
}
else
{
switch(action)
{
case "prev":
clearTimeout(gadgetTimeout);
if (bar_play.style.display == "")
{
bar_play.style.display="none";
bar_pause.style.display="";
}
cAnimation = 1;
cFunction--;
fPlaying = true;
gadgetTimeout = setTimeout("animateGadget()", TICK_LEN);
break;
case "play":
clearTimeout(gadgetTimeout);
bar_play.style.display="none";
bar_pause.style.display="";
fPlaying = true;
gadgetTimeout = setTimeout("animateGadget()", TICK_LEN);
break;
case "pause":
clearTimeout(gadgetTimeout);
bar_play.style.display="";
bar_pause.style.display="none";
fPlaying = false ;
break;
case "next":
clearTimeout(gadgetTimeout);
if (bar_play.style.display == "")
{
bar_play.style.display="none";
bar_pause.style.display="";
}
cAnimation = 1;
cFunction++;
fPlaying = true;
gadgetTimeout = setTimeout("animateGadget()", TICK_LEN);
break;
}
}
}
// Handler for a key press
function keyNavigate()
{
switch (event.keyCode)
{
// Right Arrow
case 37:
onAction("prev");
break;
// Left Arrow
case 39:
onAction("next");
break;
// Space
case 32:
// Enter
case 13:
if(event.srcElement.id == "link_restart")
{
onAction("restart");
}
else if(event.srcElement.id == "link_next")
{
onAction("next");
}
else if(event.srcElement.id == "link_prev")
{
onAction("prev");
}
else
{
if(fPlaying)
{
onAction("pause");
fPlaying = false;
}
else
{
onAction("play");
fPlaying = true;
}
}
break;
// Tab
case 9:
showNavBar();
break;
}
}
// Animation Class and Functions
function Animation(f, t)
{
this.func = f;
this.text = t;
}
// Create the list of animations to perform
function initAnimationFunctions()
{
//gImage Properties
animationFuncs.push(new Animation(animate_gImage_p_blur, "g:image\nblur\n0 > 20 > 0"));
animationFuncs.push(new Animation(animate_gImage_p_brightness, "g:image\nbrightness\n0% > 100% > 0%"));
animationFuncs.push(new Animation(animate_gImage_p_heightwidth, "g:image\nheight, width\n100% > 50% > 150%"));
animationFuncs.push(new Animation(animate_gImage_p_lefttop, "g:image\nleft, top\n(10,85) > (50,125)"));
animationFuncs.push(new Animation(animate_gImage_p_opacity, "g:image\nopacity\n100% > 0% > 100%"));
animationFuncs.push(new Animation(animate_gImage_p_rotation, "g:image\nrotation\n0 > 45 > -45 > 0"));
animationFuncs.push(new Animation(animate_gImage_p_softEdge, "g:image\nsoftEdge\n0 > 13 > 0"));
//gImage Methods
animationFuncs.push(new Animation(animate_gImage_m_addGlow, "g:image\naddGlow()\n0 > 10 > 0 (x3)"));
animationFuncs.push(new Animation(animate_gImage_m_addShadow, "g:image\naddShadow()\n0 > 30 > 0 (x2)"));
//gText Properties
animationFuncs.push(new Animation(animate_gText_p_blur, "g:text\nblur\n0 > 10 > 0"));
animationFuncs.push(new Animation(animate_gText_p_brightness, "g:text\nbrightness\n0% > 100% > 0%"));
animationFuncs.push(new Animation(animate_gText_p_color, "g:text\ncolor\n#000000 > #ffffff"));
animationFuncs.push(new Animation(animate_gText_p_lefttop, "g:text\nleft, top\n(5,85) > (25,105)"));
animationFuncs.push(new Animation(animate_gText_p_opacity, "g:text\nopacity\n100% > 0% > 100%"));
//gText Methods
animationFuncs.push(new Animation(animate_gText_m_addGlow, "g:text\naddGlow()\n0 > 10 > 0 (x3)"));
animationFuncs.push(new Animation(animate_gText_m_addShadow, "g:text\naddShadow()\n0 > 30 > 0 (x2)"));
}
// Animate the gadget
function animateGadget()
{
clearTimeout(gadgetTimeout);
if (cFunction >= animationFuncs.length)
{
cFunction = 0;
}
else if (cFunction < 0)
{
cFunction = animationFuncs.length - 1;
}
if (cAnimation == 1)
{
hideImage();
hideText();
updateAbstractText(animationFuncs[cFunction].text, TXT_ABSTRACT_LEFT, TXT_ABSTRACT_TOP);
}
if (cAnimation <= ANIMATION_LEN)
{
animationFuncs[cFunction].func();
gadgetTimeout = setTimeout("animateGadget()", TICK_LEN);
cAnimation++;
}
else
{
cFunction++;
cAnimation = 1;
gadgetTimeout = setTimeout("animateGadget()", TICK_LEN);
}
}
function animate_gImage_p_blur()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 0.0; // gImage.blur;
oImage.blur = animationTemp1;
animationTemp2 = 40.0 / (ANIMATION_LEN - 6); // Calculate blur per tick to change. No blur at the end for a few ticks.
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 >= 20.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
if (animationTemp1 < 0.0)
{
animationTemp1 = 0.0;
}
oImage.blur = animationTemp1;
}
}
function animate_gImage_p_brightness()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 0.0; // gImage.brightness;
oImage.brightness = animationTemp1;
animationTemp2 = 2.0 / (ANIMATION_LEN - 6); // Calculate brightness per tick to change. Normal brightness at the end for a few ticks.
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 >= 1.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
if (animationTemp1 < 0.0)
{
animationTemp1 = 0.0;
}
oImage.brightness = animationTemp1;
}
}
function animate_gImage_p_heightwidth()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = oImage.width; // gImage.width
animationTemp2 = oImage.height; // gImage.height
animationTemp3 = (oImage.width * 1.5) / ANIMATION_LEN; // Calculate pixels per tick to change width by
animationTemp4 = (oImage.height * 1.5) / ANIMATION_LEN; // Calculate pixels per tick to change height by
animationTemp5 = false; // Count up?
animationTemp6 = oImage.width; // Original image width
}
else
{
if (animationTemp1 <= (animationTemp6 / 2.0))
{
animationTemp5 = true;
}
if (animationTemp5)
{
animationTemp1 += animationTemp3;
animationTemp2 += animationTemp4;
}
else
{
animationTemp1 -= animationTemp3;
animationTemp2 -= animationTemp4;
}
oImage.width = animationTemp1;
oImage.height = animationTemp2;
}
}
function animate_gImage_p_lefttop()
{
if (cAnimation == 1)
{
hideText();
resetImage();
oImage.left = animationTemp1 = 15.0 * dpiScaleFactor; // gImage.left
oImage.top = animationTemp2 = 85.0 * dpiScaleFactor; // gImage.top
animationTemp3 = (40.0 * dpiScaleFactor) / ANIMATION_LEN; // Calculate pixels per tick to shift right
animationTemp4 = (40.0 * dpiScaleFactor) / ANIMATION_LEN; // Calculate pixels per tick to shift down
}
else
{
animationTemp1 += animationTemp3;
oImage.left = animationTemp1;
animationTemp2 += animationTemp4;
oImage.top = animationTemp2;
}
}
function animate_gImage_p_opacity()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 100.0; // gImage.opacity;
oImage.opacity = animationTemp1;
animationTemp2 = 200.0 / (ANIMATION_LEN - 6); // Calculate brightness per tick to change. Completely opaque at the end for a few ticks.
animationTemp3 = false; // Count up?
}
else
{
if (animationTemp1 <= 0.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 += animationTemp2 : animationTemp1 -= animationTemp2;
if (animationTemp1 > 100.0)
{
animationTemp1 = 100.0;
}
oImage.opacity = animationTemp1;
}
}
function animate_gImage_p_rotation()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 0.0; // gImage.rotation
oImage.rotation = animationTemp1;
animationTemp2 = 180.0 / ANIMATION_LEN; // Calculate degrees per tick to rotate
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 >= 45.0)
{
animationTemp3 = true;
}
else if (animationTemp1 <= -45.0)
{
animationTemp3 = false;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
oImage.rotation = animationTemp1;
}
}
function animate_gImage_p_softEdge()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 0.0; // gImage.softEdge;
oImage.softEdge = animationTemp1;
animationTemp2 = (26.0 * dpiScaleFactor) / (ANIMATION_LEN - 6); // Calculate soft edge per tick to change. No soft edge at the end for a few ticks.
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 >= (13.0 * dpiScaleFactor))
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
if (animationTemp1 < 0.0)
{
animationTemp1 = 0.0;
}
oImage.softEdge = animationTemp1;
}
}
function animate_gImage_m_addGlow()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 0.0; // Glow radius
animationTemp2 = 60.0 / ANIMATION_LEN; // Calculate soft edge per tick to change
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 <= 0.0)
{
animationTemp3 = false;
animationTemp4 = "Color(255, " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ")";
}
if (animationTemp1 > 10.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
oImage.addGlow(animationTemp4, animationTemp1, 100);
}
}
function animate_gImage_m_addShadow()
{
if (cAnimation == 1)
{
hideText();
resetImage();
animationTemp1 = 0.0; // Shadow radius
animationTemp2 = 120.0 / ANIMATION_LEN; // Calculate shadow per tick to change
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 <= 0.0)
{
animationTemp3 = false;
animationTemp4 = "Color(255, " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ")";
}
if (animationTemp1 >= 30.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
oImage.addShadow(animationTemp4, animationTemp1, 100, 0, 0);
}
}
function animate_gText_p_blur()
{
if (cAnimation == 1)
{
hideImage();
resetText();
animationTemp1 = 0.0; // gText.blur;
oText.blur = animationTemp1;
animationTemp2 = 20.0 / (ANIMATION_LEN - 6); // Calculate blur per tick to change. No blur at the end for a few ticks.
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 >= 10.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
if (animationTemp1 < 0.0)
{
animationTemp1 = 0.0;
}
oText.blur = animationTemp1;
}
}
function animate_gText_p_brightness()
{
if (cAnimation == 1)
{
hideImage();
resetText();
oText.color = "red";
animationTemp1 = 0.0; // oImage.brightness;
oText.brightness = animationTemp1;
animationTemp2 = 2.0 / (ANIMATION_LEN - 6); // Calculate brightness per tick to change. Normal brightness at the end for a few ticks.
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 >= 1.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
if (animationTemp1 < 0.0)
{
animationTemp1 = 0.0;
}
oText.brightness = animationTemp1;
}
}
function animate_gText_p_color()
{
if (cAnimation == 1)
{
hideImage();
resetText();
animationTemp1 = 0.0; // R
animationTemp2 = 0.0; // G
animationTemp3 = 0.0; // B
animationTemp4 = 765.0 / ANIMATION_LEN; // Calculate gradient per tick to change cur color by
animationTemp5 = 1; // Current channel we're animating on (R, G or B)
oText.color = "Color(255, " + Math.floor(animationTemp1) + ", " + Math.floor(animationTemp2) + ", " + Math.floor(animationTemp3) + ")";
}
else
{
switch (animationTemp5)
{
case 1:
if (animationTemp1 < 255.0)
{
animationTemp1 += animationTemp4;
if (animationTemp1 <= 255.0)
{
break;
}
else
{
animationTemp1 = 255.0;
}
}
else
{
animationTemp5 = 2;
}
case 2:
if (animationTemp2 < 255.0)
{
animationTemp2 += animationTemp4;
if (animationTemp2 <= 255.0)
{
break;
}
else
{
animationTemp2 = 255.0;
}
}
else
{
animationTemp5 = 3;
}
case 3:
if (animationTemp3 < 255.0)
{
animationTemp3 += animationTemp4;
}
if (animationTemp3 > 255.0)
{
animationTemp3 = 255.0;
}
break;
}
oText.color = "Color(255, " + Math.floor(animationTemp1) + ", " + Math.floor(animationTemp2) + ", " + Math.floor(animationTemp3) + ")";
}
}
function animate_gText_p_lefttop()
{
if (cAnimation == 1)
{
hideImage();
resetText();
animationTemp1 = 5.0 * dpiScaleFactor; // gText.left
animationTemp2 = 85.0 * dpiScaleFactor; // gText.top
oText.left = animationTemp1;
oText.top = animationTemp2;
animationTemp3 = (20.0 * dpiScaleFactor) / ANIMATION_LEN; // Calculate pixels per tick to shift right
animationTemp4 = (20.0 * dpiScaleFactor) / ANIMATION_LEN; // Calculate pixels per tick to shift down
}
else
{
animationTemp1 += animationTemp3;
animationTemp2 += animationTemp4;
oText.left = animationTemp1;
oText.top = animationTemp2;
}
}
function animate_gText_p_opacity()
{
if (cAnimation == 1)
{
hideImage();
resetText();
animationTemp1 = 100.0; // gText.opacity;
oText.opacity = animationTemp1;
animationTemp2 = 200.0 / (ANIMATION_LEN - 6); // Calculate brightness per tick to change. Completely opaque at the end for a few ticks.
animationTemp3 = false; // Count up?
}
else
{
if (animationTemp1 <= 0.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 += animationTemp2 : animationTemp1 -= animationTemp2;
if (animationTemp1 > 100.0)
{
animationTemp1 = 100.0;
}
oText.opacity = animationTemp1;
}
}
function animate_gText_m_addGlow()
{
if (cAnimation == 1)
{
hideImage();
resetText();
animationTemp1 = 0.0; // Glow radius
animationTemp2 = 60.0 / ANIMATION_LEN; // Calculate soft edge per tick to change
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 <= 0.0)
{
animationTemp3 = false;
animationTemp4 = "Color(255, " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ")";
}
if (animationTemp1 > 10.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
oText.addGlow(animationTemp4, animationTemp1, 100);
}
}
function animate_gText_m_addShadow()
{
if (cAnimation == 1)
{
hideImage();
resetText();
animationTemp1 = 0.0; // Shadow radius
animationTemp2 = 120.0 / ANIMATION_LEN; // Calculate shadow per tick to change
animationTemp3 = false; // Count down?
}
else
{
if (animationTemp1 <= 0.0)
{
animationTemp3 = false;
animationTemp4 = "Color(255, " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ", " + Math.floor(Math.random() * 255) + ")";
}
if (animationTemp1 >= 30.0)
{
animationTemp3 = true;
}
animationTemp3 ? animationTemp1 -= animationTemp2 : animationTemp1 += animationTemp2;
oText.addShadow(animationTemp4, animationTemp1, 100, 0, 0);
}
}