Volledige versie bekijken : [AS] 25-regels code battle
TheZwier
%Europe/Berlin %826 %2008, 20:50
Welkom bij de [as]25 battle!
Het idee is om een puur actionscript flash applicatie te maken die maximaal 25 regels bevat.
het idee is heel simpel, je maakt een leuk scriptje van maximaal 25 regels en post het hier.
Als er eventueel nog specs zijn die je aan moet passen post je deze erbij op zo`n manier:
stage: 200*800
bgcolor: 0xFF00FF
fps: 25
(eventueel flash versie, maar het mooiste is natuurlijk als alles werkt met flash 8 of flash mx)
Deze battle is al eens eerder op flashfocus geweest, maar dat is alweer eeuwen geleden (als het niet langer is!!) en uit deze battles vloeien vaak veel leuke dingetjes.
Waar je bijvoorbeeld aan kan denken is een kleine game, iets dat leuke tekeningen maakt, een rss-reader of iets heel anders!
(om een compleet willekeurige inzending van de vorige keer te zien kan je op http://gnur.nl/as25.htm kijken, dit is uiteraard niet mijn inzending van deze battle)
Succes!
//edit: voor wat simpele regels:
Regels combineren door geen enters naar punt-komma`s te plaatsen mag niet.
Meerdere variabelen declareren op 1 regel mag wel (dat maakt het geheel iets makkelijker)
a =2; b = 1; c = 800;
Maar dit zou niet mogen:
if(a == b) { b = 2; }
maar dit wel:
if(a == b) b = 2;
awesomo
%Europe/Berlin %836 %2008, 21:04
Geweldig idee.
Ik ga proberen mee te doen.
Max 1 entry of ongelimiteerd?
ps: Waarom zou het met flash 8 of mx moeten werken? Is flash CS3 te futuristisch?
awesomo
%Europe/Berlin %876 %2008, 22:02
Mijn eerste entry. Genereerd een ster met een aantal punten. Mouseclick om het aantal te verhogen.
const RADIUS:Number = 100
var points:uint = 4
var star:Shape = new Shape
star.x = stage.stageWidth/2
star.y = stage.stageHeight/2
star.filters = [new DropShadowFilter(2)]
addChild(star)
stage.addEventListener(MouseEvent.CLICK,addPoint)
addPoint()
function addPoint(e:MouseEvent=null):void {
points++
star.graphics.clear()
star.graphics.lineStyle(2,0xCC9900)
star.graphics.beginFill(0xFFCC00,1)
star.graphics.moveTo(0,-RADIUS)
for(var i:Number=1;i<=points;i++) {
star.graphics.lineTo(RADIUS/2*Math.sin((i*2-1)/points*Math.PI),-RADIUS/2*Math.cos((i*2-1)/points*Math.PI))
star.graphics.lineTo(RADIUS*Math.sin(i*2/points*Math.PI),-RADIUS*Math.cos(i*2/points*Math.PI))
}
star.graphics.endFill()
}
awesomo
%Europe/Berlin %933 %2008, 23:24
Parsed de eerste 15 showcase images.
var numImages:uint = 0;
var images:uint = 0;
(new URLLoader(new URLRequest("http://flashfocus.nl/forum/forumdisplay.php?f=17"))).addEventListener(Event.COMPLETE,onPageLoad)
function onPageLoad(e:Event):void {
var data:String = String(e.currentTarget.data)
while(data.match(/<img[^>]*>/)) {
var currentImg:String = data.match(/<img[^>]*>/)[0]
if(currentImg.match(/style=\"border: 0; widht: 70px; height: 70px;\"/)) {
var loader:Loader = new Loader
loader.contentLoaderInfo.addEventListener(Event.CO MPLETE,imgLoaded)
loader.load(new URLRequest(currentImg.replace(/.*src=\"([^"]+)\".*/,"$1")))
}
data = data.replace(/<img[^>]*>/,"")
}
}
function imgLoaded(e:Event):void {
var bitmap:Bitmap = Bitmap(e.currentTarget.content)
bitmap.smoothing = true
bitmap.width = bitmap.height = 70
bitmap.x = (images%5)*bitmap.width
bitmap.y = uint(images++/5)*bitmap.width
addChild(bitmap)
}
dimensions: 350x120
mknol
%Europe/Berlin %955 %2008, 23:56
25 regels, betekend dat niet dat je meerdere regels op 1 regel mag plaatsen, want theoretisch gezien kun je alles op 1 regel plaatsen. Ik vind eigenlijk wel dat je ook moet kunnen AS3-en? Flash MX is zo oud..
Maaruh.. Leuke contest, ik ga ook meedoen..!
Ea.Z
%Europe/Berlin %970 %2008, 00:18
mag je externe classes gebruiken? (in that case cheating would be pretty easy)
+
Wat Mark zegt: je kunt makkelijk meerdere regels op 1 lijn zetten.
Wat ik me wel herinner: de 512bytes battle: 512tekens actionscript coden :)
Ik weet niet of ik hieraan ga meedoen, kzal nog wel zien. Hangt ook van mijn tijd af deze vakantie. Is erg druk :)
awesomo
%Europe/Berlin %977 %2008, 00:27
Wat een lijn code is is vrij duidelijk, denk ik. We zouden ook een paar regels kunnen opstellen.
Bijvoorbeeld:
if() /*code*/ telt als 2 lijnen en
if(a==true)
b = "hihi"
else
b = "haha" mag je vervangen door
b = a?"hihi":"haha" // telt als 1 regel
Hangt ook van mijn tijd af deze vakantie.Het zijn max 25 regels code. Geen 250. :P
mknol
%Europe/Berlin %056 %2008, 02:21
Kon het niet laten; mijn inzending :)
Specs:
lang: AS3.0
size: 500x400
bgcolor: 0x000000
31 fps
Ik noem het mini.artwork en valt in de categorie 'iets dat leuke tekeningen maakt'var l:BitmapData = new BitmapData( 500, 400, false, 0xffffff );
this.addChild (new Bitmap(l));
this.addEventListener (Event.ENTER_FRAME, autoDraw);
var ar:Array = [ 1, 2, 9, 4 ,5,8,1,7,9,1];
var ar2:Array = [ 0xcc0000,0xff6600, 0xffcc00,0xaa0000,0xff6600, 0x990000,0xff6600, 0xffaa00,0,0];
var spr:Sprite = new Sprite();
this.addChild (spr);
var startN:Number = Math.random() * 5;
var pos1:Number = Math.random() * 10;
var pos2:Number = Math.random() * 10;
function autoDraw (event:Event):void{
for (var i:Number = 0; i < 10; i ++){
if (Math.random() > 0.3) spr.graphics.lineStyle ((startN/3)>>0, ar2[(startN/20)>>0], 0.1,true, LineScaleMode.NORMAL, CapsStyle.SQUARE, JointStyle.MITER, Math.random()*15);
spr.graphics.moveTo ( pos1 , pos2 );
pos1 = (pos1 < 500 && pos1 > 0) ? pos1 - Math.sin( ar[4] * (i*startN) * 800 ) * startN * i / 30 : Math.random()*500;
pos2 = (pos2 < 400 && pos2 > 0) ? pos2 + Math.cos( ar[4] * (i*startN) * 800 ) * startN * i / 19 : Math.random()*400;
spr.graphics.lineTo ( pos1+ar[i], pos2+ar[i] );
spr.graphics.curveTo ( pos1+ar[i], pos2+ar[i], pos1+ar[i], pos2+ar[i] );
spr.graphics.lineTo ( pos1 , pos2 );
spr.graphics.lineTo ( mouseX , mouseY );
l.draw ( spr );
spr.graphics.clear ();
}
startN = (startN > 200) ? 0 : startN+2;
}Sorry voor de lelijke benamingen, ze slaan nergens meer op.
Output van wat de code doet staat in bijlage.
awesomo
%Europe/Berlin %061 %2008, 02:28
Very nice :)
mknol
%Europe/Berlin %070 %2008, 02:41
Very nice :)
Had nog 1 regel over, dus heb heb nog iets aangepast. Hij reageerd ook op je muis :)
awesomo
%Europe/Berlin %083 %2008, 02:59
Shit, tijd voor mij om iets anders te maken. :P
ps: leuke kleuren combinatie
pps: heb mijn parser code ook een beetje aangepast zodat hij alle 15 showcase items mooi naast/onder elkaar zet
Jan
%Europe/Berlin %127 %2008, 04:03
Het idee is om een puur actionscript flash applicatie te maken die maximaal 25 regels bevat.check:V
Wat ik me wel herinner: de 512bytes battle: 512tekens actionscript coden :)
check:V
Sorry voor de lelijke benamingen, ze slaan nergens meer op.
check:V
Op de linkerhelft klikken om de kleuren te veranderen.
Op de rechterhelft klikken om de fractal noise aan of uit te zetten.
Reageert verder op de posititie van je muis.import flash.display.*;
import flash.geom.*
b=new BitmapData(Stage.width,Stage.height);
this.attachBitmap(b,0,"auto",true);
p =new Point(random(Stage.width),random(Stage.height));
q =new Point(random(Stage.width),random(Stage.height));
c=9;
f=true;
setInterval(w,20);
onMouseDown=function(){
(_xmouse>_width/2)? (f=!f) : (c>1? c--: c=15);
}
function w(){
p.x-=5;
q.x+=5;
o=new Array(p,q);
b.perlinNoise(_xmouse,_ymouse,2,115,true,f,c,false ,o);
}
Groeten,
http://users.telenet.be/jansurf/cwo.pngJan
awesomo
%Europe/Berlin %606 %2008, 15:33
Dit toont je totaal memory verbruik.
var data:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,fals e,0xffffff)
addChild(new Bitmap(data))
addEventListener(Event.ENTER_FRAME,onEnterFrame)
function onEnterFrame(e:Event):void {
var i:uint
data.scroll(-1,0)
for(i=0;i<stage.stageHeight;i++)
data.setPixel(stage.stageWidth-1,i,i>System.totalMemory/100000?0x000000:0xffffff)
var loader:Loader = new Loader
loader.load(new URLRequest("http://barfblog.foodsafety.ksu.edu/gallery_Napoleon_Dynamite_1.jpg"))
}
Er wordt nutloos een foto geladen om zo toch enig cpu gebruik te maken. Je ziet ook hoe dat gc'ing werkt.
mknol
%Europe/Berlin %357 %2008, 09:35
Parsed de eerste 15 showcase images.Wow, dat is koel. Ik wist helemaal niet dat je een URL als string kon inladen. Dat geeft wel mogelijkheden voor een hoop data. Is het hiervoor ook nodig om een crossdomain.xml op het bewuste domein te hebben? Leuke bevinding hoor :)
awesomo
%Europe/Berlin %502 %2008, 13:03
Wow, dat is koel. Ik wist helemaal niet dat je een URL als string kon inladen. Dat geeft wel mogelijkheden voor een hoop data. Is het hiervoor ook nodig om een crossdomain.xml op het bewuste domein te hebben? Leuke bevinding hoor :)
Ben het nog niet tegengekomen dat ik een crossdomain nodig had. Ik gebruik dezelfde techniek om info uit imdb te halen.
Als je de titels enz er ook uit wil halen heb je wel enkele regels extra nodig. [V]
ninetynine
%Europe/Berlin %507 %2008, 13:11
Ben het nog niet tegengekomen dat ik een crossdomain nodig had. Ik gebruik dezelfde techniek om info uit imdb te halen.
Als je de titels enz er ook uit wil halen heb je wel enkele regels extra nodig. [V]
Ik heb even terug ook zoiets gemaakt, je kan namelijk heel gemakkelijk de hele html pagina
omzetten naar xml, (mits een paar string.replace's). En dan kan je werken met alle voordelen van xml in AS 3.0 (en dat zijn er heel wat ;)).
De nadelen zijn wel : passen ze hun site structuur aan, mag je ook terug beginnen zoeken.
En ik denk dat het relatief veel dataverkeer verbruikt om bv. telkens te refreshen, omdat hij waarschijnlijk heel de pagina telkens opnieuw inlaadt.
Ontopic : Leuke inzendingen al !
Neuro
%Europe/Berlin %544 %2008, 14:03
Wow, dat is koel. Ik wist helemaal niet dat je een URL als string kon inladen. Dat geeft wel mogelijkheden voor een hoop data.
Je moet dit eens bekijken, hiermee kan je hele html pagina's dynamisch parsen, erg cool :)
http://code.google.com/p/htmlwrapper/
Jan
%Europe/Berlin %621 %2008, 15:55
Wow, dat is koel. Ik wist helemaal niet dat je een URL als string kon inladen. Dat geeft wel mogelijkheden voor een hoop data.
Dit kon/kan in AS2 ook (al) via de LoadVars class en je moe(s)t daarvoor enkel de onData eventhandler gebruiken (die normaal gezien automatisch geinvoked wordt, voor de onLoad):
var lv:LoadVars=new LoadVars();
lv.load("http://www.jouwdomein.nl");
lv.onData=function(src:String)
{
trace(src);//geeft de html source
}
Is het hiervoor ook nodig om een crossdomain.xml op het bewuste domein te hebben? Leuke bevinding hoor :)
Denk het wel ja.
Groeten,
http://users.telenet.be/jansurf/cwo.pngJan
Geert9
%Europe/Berlin %004 %2008, 01:06
De eerste keer dat ik iets inzend en ook de eerste keer dat ik programmeerde met AS3.0
Bij deze:
var TxtSong:TextField = new TextField();
TxtSong.type = TextFieldType.INPUT;
TxtSong.text = "Link here";
TxtSong.addEventListener (FocusEvent.FOCUS_OUT, textChange);
addChild(TxtSong);
function loadAlbum(songLink:String) {
var song:Sound = new Sound(new URLRequest(songLink));
song.addEventListener(Event.ID3,loadAlbumPage);
function loadAlbumPage(event) {
new URLLoader(new URLRequest("http://www.amazon.com/s/ref=nb_ss_gw/002-8365505-0136004?url=search-alias%3Daps&field-keywords=" + song.id3.album + "&x=0&y=0")).addEventListener(Event.COMPLETE, onPageLoad);
}
function onPageLoad(e:Event):void {
var albumPic:String = String(e.currentTarget.data);
var indexB:Number = albumPic.search("sr=8-1\"> <img src=");
var indexE:Number = albumPic.search(".jpg\" class");
albumPic = albumPic.slice(indexB+19,indexE+4);
var loader:Loader = new Loader();
loader.load(new URLRequest(albumPic));
loader.y= 50;
addChild(loader);
}
}
function textChange(event) {
loadAlbum(TxtSong.text);
}
Specs:
lang: AS3.0
size: 250x200
bgcolor: 0x000000
12 fps
Vul een link in die naar een mp3 verwijst en als hij ID3 tag ondersteunt zal hij de album foto laden. Zoek bijvoorbeeld voor intitle:index.of + "mp3" + "BandName" -htm -html -php -asp op google en je vind een hele reeks mp3's, daarna vul je de rechtstreekse link in in het tekstveld en wanneer je dan uit het tekstveld focused(ergens op stage klikken) zal hij het album fototje laden...
enkele voorbeeld links:
http://mp3.openru.ru/mp3/Linkin%20Park/%5bHYBRID%20THEORY%5d/05_Crawling.mp3
http://mp3.openru.ru/mp3/Linkin%20Park/Meteora/07_Faint.mp3
TimoDijkstra Webdesign
%Europe/Berlin %624 %2008, 15:58
tot hoe lang kan / mag j inzenden?
T
Jan
%Europe/Berlin %754 %2008, 19:06
tot hoe lang kan / mag j inzenden?
T
Tot en met 38 augustus dacht ik. |)
Nee, doe maar op joh, dit topic is puur voor de fun lijkt me, dus zolang de moderators het openhouden en jij iets leuk hebt, vlam je het maar neer.
Groeten,
http://users.telenet.be/jansurf/cwo.png Jan
Smitovic
%Europe/Berlin %818 %2008, 20:37
Oh 38 augustus! Genoeg tijd om AS te leren en ook wat in te sturen:D
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.