Action Script in Action Welcome, Guest. Please login or register.
Always stay logged in

Login with username, password and session length
Home Help Search Login Register
Pages: [1]
  Print  
Author Topic: Pendulim  (Read 214 times)
Wayne
Administrator
Full Member
*****

Karma: 0
Offline Offline

Posts: 119


BEER ,beeeeeeeeeeer ah beer.


« on: December 14, 2009, 07:49:25 AM »

 

Man are my M&M's in a joyous mood, they seem to be dancing all over the place.  
It seems that our cheerleader is leading them on  

So while they are  excited lets get you excited with a little code to make a pendulim:

Code:
function pendulum (centerX, centerY, radius, aoi, completionRatio){
    var easedOneToNegOne = Math.cos(completionRatio*2*Math.PI);
    var aoiRadians = aoi * 2 * Math.PI;
    var currentRotation = easedOneToNegOne * aoiRadians;
    var x = centerX + Math.sin(currentRotation) * radius;
    var y = centerY + Math.cos(currentRotation) * radius;
    return {x:x, y:y};
}

function swingPendulum (){
    pendCount += pendSpeed;
    pendCount %= 1;
    var point = pendulum (pendX, pendY, pendRadius, pendArc, pendCount);
    Pendu._x = point.x;
    Pendu._y = point.y;
    with (Stick){
        clear();
        lineStyle(2, 0);
        moveTo(pendX, pendY);
        lineTo(point.x, point.y);
    }
}

onSelfEvent (enterFrame) {
    swingPendulum();
}

onFrame (1) {
var pendX = 250;
var pendY = 250;
var pendRadius = 200;
var pendArc = 135/360;
var pendSpeed = .005;
var pendCount = 0;
createEmptyMovieClip("Pendu", 10);
with(Pendu){
    beginFill(0xFF0000);
    moveTo(-20, 0);
    curveTo(0, 15, 20, 0);
    curveTo(0, -15, -20, 0);
}
createEmptyMovieClip("Stick", 5);
}
  
 

Let's have some more fun while they are wound up.


Code:
function fadeHexes(arry)
{
    var _loc15 = arry.length - 1;
    var _loc13 = [];
    for (var _loc3 = 0; _loc3 < _loc15; _loc3 = _loc3 + 2)
    {
        var _loc4 = arry[_loc3];
        var _loc8 = arry[_loc3 + 2];
        _loc13.push(_loc4);
        var _loc7 = _loc4 >> 16;
        var _loc9 = _loc4 >> 8 & 255;
        var _loc6 = _loc4 & 255;
        var _loc11 = (_loc8 >> 16) - _loc7;
        var _loc10 = (_loc8 >> 8 & 255) - _loc9;
        var _loc12 = (_loc8 & 255) - _loc6;
        var _loc5 = arry[_loc3 + 1] + 1;
        for (var _loc2 = 1; _loc2 < _loc5; ++_loc2)
        {
            var _loc1 = _loc2 / _loc5;
            _loc13.push(_loc7 + _loc11 * _loc1 << 16 | _loc9 + _loc10 * _loc1 << 8 | _loc6 + _loc12 * _loc1);
        }
    }
    _loc13.push(arry[_loc15]);
    return (_loc13);
}

function conicPattern(x, y, xr, yr, angle, colors)
{
    var _loc9 = colors.length;
    var _loc8 = angle * 2 * 3;
    var _loc10 = 6 / _loc9;
    var _loc5 = x + Math.cos(_loc8) * xr;
    var _loc4 = y + Math.sin(_loc8) * yr;
    var _loc3;
    var _loc2;
    for (var _loc1 = 0; _loc1 <= _loc9; ++_loc1)
    {
        newRadians = _loc8 + _loc10 * (_loc1 + 1);
        _loc3 = x + Math.cos(newRadians) * xr;
        _loc2 = y + Math.sin(newRadians) * yr;
        beginFill(colors[_loc1]);
        moveTo(_loc5, _loc4);
        lineTo(x, y);
        lineTo(_loc3, _loc2);
        endFill();
        _loc5 = _loc3;
        _loc4 = _loc2;
    }
}

function showGradient(hexColors)
{
    gb.clear();
    var _loc4 = hexColors.length;
    var _loc3 = gradWidth / _loc4;
    for (var _loc1 = 0; _loc1 < _loc4; ++_loc1)
    {
        var _loc2 = _loc1 * _loc3;
        gb.beginFill(hexColors[_loc1]);
        gb.moveTo(_loc2, 0);
        gb.lineTo(_loc2, gradHeight);
        gb.lineTo(_loc2 + _loc3, gradHeight);
        gb.lineTo(_loc2 + _loc3, 0);
    }
    endFill();
}
onFrame (1) {
onEnterFrame = function ()
{
    ++count;
    thisSpin = spin * count;
    clear();
    conicPattern(250, 150, 225, 125, thisSpin, gradientHexColors);
};
var count = 0;
var spin = 1;
var gradientSeedColors = [16776960, 75, 65535, 75, 16711935, 75, 16776960];
var gradientHexColors = fadeHexes(gradientSeedColors);
onMouseDown = function ()
{
    var _loc3 = Math.random() * 16777215;
    var _loc2 = Math.random() * 5 + 2;
    var _loc4 = Math.random() * 50 + 20;
    gradientSeedColors = [_loc3];
    for (var _loc1 = 0; _loc1 < _loc2; ++_loc1)
    {
        gradientSeedColors.push(Math.random() * 50 + 20);
        gradientSeedColors.push(Math.random() * 16777215);
    }
    gradientSeedColors.push(Math.random() * 50 + 20);
    gradientSeedColors.push(_loc3);
    gradientHexColors = fadeHexes(gradientSeedColors);
    showGradient(gradientHexColors);
};
var gradX = 25;
var gradY = 310;
var gradWidth = 450;
var gradHeight = 40;
var gb = createEmptyMovieClip("GradientBar", 10);
gb._x = gradX;
gb._y = gradY;
showGradient(gradientHexColors);
}

Color spectrum wheel and spetrum.    

More party time.

Code:
function randomizeColor(colorObj, min, max){
    for(var i in colorObj){
        var chnl = colorObj[i];
        var ran = min + Math.random() * (max-min);
        chnl += (Math.round(Math.random()) ? ran : -ran);
        colorObj[i] = Math.max(0, Math.min(chnl, 255))
    }
    return colorObj;
}

function rgbToHex (colorObj){
    return(colorObj.r<<16 | colorObj.g<<8 | colorObj.b);
}

function drawBox(x, color){
    beginFill(color);
    moveTo(x, 0);
    lineTo(x+1, 0);
    lineTo(x+1, 400);
    lineTo(x, 400);
    lineTo(x, 0);
}

function genCandyGradient(){
    clear();
    for(var i=0; i<500; i++){
        randomizeColor(myColorObj, minColorChannelVary, maxColorChannelVary);
        drawBox(i, rgbToHex (myColorObj));
    }
}


onFrame (1) {
var myColorObj = {};
myColorObj.r = 100;
myColorObj.g = 100;
myColorObj.b = 100;
var minColorChannelVary = 5;
var maxColorChannelVary = 10;
genCandyGradient();
onMouseDown = genCandyGradient;
}
 

Color spectrum to make a back drop for your home page, it changes when ever you click.   

Let's make a little cosmic grad. fill piece.

Code:
function fadeHexes (arry){
    var len = arry.length-1;
    var newArry = [];
    for(var i=0; i<len; i+=2){
        var hex = arry[i];
        var hex2 = arry[i+2];
        newArry.push(hex);
        var r = hex >> 16;
        var g = hex >> 8 & 0xFF;
        var b = hex & 0xFF;
        var rd = (hex2 >> 16)-r;
        var gd = (hex2 >> 8 & 0xFF)-g;
        var bd = (hex2 & 0xFF)-b;
        var steps = arry[i+1]+1;
        for (var j=1; j<steps; j++){
            var ratio = j/steps;
            newArry.push((r+rd*ratio)<<16 | (g+gd*ratio)<<8 | (b+bd*ratio));
        }
    }
    newArry.push(arry[len]);
    return newArry;
}

function conicGradient(x, y, xr, yr, angle, colors){
    var len = colors.length;
    var startRadians = angle * 2 * Math.PI;
    var stepRadians = (2 * Math.PI)/len;
    var oldX = x + Math.cos(startRadians) * xr;
    var oldY = y + Math.sin(startRadians) * yr;
    var newX, newY;
    for(var i=0; i<=len; i++){
        newRadians = startRadians + stepRadians*(i+1);
        newX = x + Math.cos(newRadians) * xr;
        newY = y + Math.sin(newRadians) * yr;
        beginFill(colors[i]);
        with (this){
            moveTo(oldX, oldY);
            lineTo(x, y);
            lineTo(newX, newY);
            lineTo(oldX, oldY);
            endFill();
        }
        oldX = newX;
        oldY = newY;
    }
}
onFrame (1) {
var colors1 = fadeHexes ([0xFFFF00,  4, 0x00FFFF,  4, 0xFF00FF,  4, 0xFFFF00]);
var colors2 = fadeHexes ([0xFFFF00,  8, 0x00FFFF,  8, 0xFF00FF,  8, 0xFFFF00]);
var colors3 = fadeHexes ([0xFFFF00, 16, 0x00FFFF, 16, 0xFF00FF, 16, 0xFFFF00]);
var colors4 = fadeHexes ([0xFFFF00, 32, 0x00FFFF, 32, 0xFF00FF, 32, 0xFFFF00]);
conicGradient( 70, 70, 50, 50, 0, colors1);
conicGradient(190, 70, 50, 50, 0, colors2);
conicGradient(310, 70, 50, 50, 0, colors3);
conicGradient(430, 70, 50, 50, 0, colors4);
}


That's about it for now.

 

Wayne
« Last Edit: December 14, 2009, 07:56:28 AM by Wayne » Logged
stream2
Star
Full Member
********

Karma: 0
Offline Offline

Posts: 110



« Reply #1 on: March 16, 2010, 01:20:53 PM »

Hi Mr Wayne
Really you are genius in scripting!     It's fantastic!  Smiley
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC
DG Style by Fth*