By Zevan | February 24, 2009
Actionscript:
-
var input:String = "a, b, c";
-
-
var words:Array = input.split(", ");
-
var max:String = "";
-
var maxD:String = (words.length - 1).toString();
-
for (var i:int = 0; i<words.length; i++){
-
max += maxD;
-
}
-
var maxInt:int = parseInt(max,words.length);
-
-
for(i = 0; i<=maxInt; i++){
-
var indices:String = i.toString(words.length);
-
var r:String = "";
-
var k:int=0;
-
for (var j:int = 0; j<indices.length; j++){
-
r += words[parseInt(indices.charAt(j))] +" ";
-
k++;
-
}
-
while(k <words.length) {
-
r = words[0] +" "+ r;
-
k++;
-
}
-
trace(r);
-
}
-
trace(i, " variations");
Like many things on this site, I coded this rather quickly and it can probably be cleaned up...
Setting the input variable of the above snippet to "a, b" will output:
a a
a b
b a
b b
4 variations
Setting the input to "a, b, c" will output:
a a a
a a b
a a c
a b a
a b b
a b c
a c a
a c b
a c c
b a a
b a b
b a c
b b a
b b b
b b c
b c a
b c b
b c c
c a a
c a b
c a c
c b a
c b b
c b c
c c a
c c b
c c c
27 variations
I created this to work with words... inputs like "bread, breath, blobs, backwards". Be careful because you can quickly get millions of outputs:
1 to the power of 1 is 1
2 to the power of 2 is 4
3 to the power of 3 is 27
4 to the power of 4 is 256
5 to the power of 5 is 3125
6 to the power of 6 is 46,656
7 to the power of 7 is 823,543
8 to the power of 8 is 16,777,216
etc...
By Zevan | February 23, 2009
Actionscript:
-
g=graphics;
-
mt=g.moveTo;
-
lt=g.lineTo;
-
ls=g.lineStyle;
-
m=Math;
-
r=m.random;
-
s=m.sin;
-
i=0;
-
o={};
-
function f(e){
-
s=150,x=y=s,z=-s,c=(!i)?addChild(new Bitmap(new BitmapData(s,s))).bitmapData:c;while(i<22500)i++,c.setPixel(i%s,i/s,(i%s|i/s)*mouseX);i=1;
-
}
-
addEventListener("enterFrame",f);
Have to link to this very fun new contest:
http://tweetcoding.machine501.com/
http://gskinner.com/playpen/tweetcoding.html
I may just have to get a twitter account...
Posted in misc | Tagged actionscript, flash |
By Zevan | February 23, 2009
Actionscript:
-
var clock:Sprite = Sprite(addChild(new Sprite()));
-
clock.x = clock.y = 150;
-
-
var bg:Shape = Shape(clock.addChild(new Shape()));
-
with (bg.graphics) lineStyle(2, 0x666666), beginFill(0xEFEFEF), drawCircle(0,0,110);
-
-
var hHand:Shape = clockHand(6, 50);
-
var mHand:Shape = clockHand(2, 80);
-
var sHand:Shape = clockHand(1, 90);
-
-
var center:Shape = Shape(clock.addChild(new Shape()));
-
with (center.graphics) beginFill(0x000000), drawCircle(0,0,5);
-
-
var hInc:Number = 360/24;
-
var msInc:Number = 360/60 ;
-
var nOff:Number = 6;
-
var verdana:TextFormat = new TextFormat("Verdana", 8);
-
// add numbers to clock
-
for (var i:int = 0; i<24; i++){
-
var ang:Number = (i * hInc - 90) * Math.PI/180;
-
createNumber(70,ang, i.toString());
-
var ms:Number = i * 2.5;
-
if (ms % 5 == 0){
-
createNumber(95, ang, ms.toString());
-
}
-
}
-
-
addEventListener(Event.ENTER_FRAME, onLoop);
-
function onLoop(evt:Event):void {
-
var date:Date = new Date();
-
hHand.rotation = hInc * date.getHours();
-
mHand.rotation = msInc * date.getMinutes();
-
sHand.rotation = msInc * date.getSeconds();
-
}
-
-
function clockHand(thickness:Number, leng:Number):Shape{
-
var hand:Shape = Shape(clock.addChild(new Shape()));
-
with (hand.graphics) {
-
lineStyle(thickness, 0x000000, 1, true, LineScaleMode.NORMAL, CapsStyle.SQUARE);
-
lineTo(0,-leng);
-
}
-
return hand;
-
}
-
-
function createNumber(radius:Number, theta:Number, str:String):void{
-
var t:TextField = TextField(clock.addChild(new TextField()));
-
with (t) defaultTextFormat = verdana, t.autoSize = "left";
-
t.text = str;
-
t.x = radius * Math.cos(theta) - nOff;
-
t.y = radius* Math.sin(theta) - nOff;
-
}
I was watching a movie the other day and I saw a 24 hour clock in the background of one of the shots. After the movie I coded this snippet. It draws a very basic clock with an hour hand that takes 24 hours to go full circle...
Posted in misc | Tagged actionscript, flash |
By Zevan | February 22, 2009
Actionscript:
-
addChild(new TextField());
-
getChildAt(0)["text"] = "Hello World";
Notice that square bracket syntax makes it so we don't need to typecast. Take a look at the other way:
Actionscript:
-
addChild(new TextField());
-
TextField(getChildAt(0)).text = "Hello World";
Typecasting is the way to go.... the square bracket technique is just an interesting trick.
I wrote this after somehow stumbling on this very entertaining page - it shows hello world written in approximately 200 different languages...