Flex / ActionScript 3 / Flixel on Mac

I thought there was no decent AS3/ActionScript3 code editor for Mac (FlashDevelop is only for Windows) but I found this old tutorial on CreativeApplications that recommends TextMate2 as a code editor for AS3/Flixel on Mac.

Turns out as I have OSX 10.9/Mavericks I must use TextMate3 instead of TextMate2 and the tutorial for using Flex is intended for TextMate2 therefore doesn’t work for TextMate3… and there isn’t enough documentation yet for this version (still alpha).

Found out there is a handy ActionScript 3 package for SublimeText2, a code editor that I really like and the package is installable with SublimeText2 package control. You just need to add then a BuildSystem to it afterwards:

Simply navigate to your ST2 preferences > Browse Packages and then find the ActionScript 3 directory and add the contents of this gist to a new file named actionscript.sublime-build (change the SDK location to where the SDK is on your machine). Once you have compiled your SWF you can then run the SWF within the Flash Player using Shift + ⌘ + B (shift + cmd + B).

Now you can open an .AS file that uses Flixel and it will compile to a nice .swf file. I simply used “the Macintosh Flash Player 11.9 Projector content debugger (DMG, 15.44MB)” to run my .swf’s but it seems there is lot more solutions : [best tools for debugging flash ActionScript 3] when it comes to debugging.


Fragment 004 — remix du fragment 002

Eliminée, elle n’est plus systématiquement éclairée dans ses allers et venues, elle ne perçoit plus aucune mélodie accompagnant ce siècle. Des silhouettes noires, des demi-silhouettes. Une ampoule qui tremble et à droite, un instincteur. Des trous dans les murs bouchés par du papier. Elle tape contre le mur et fait tomber des bouts de ces papiers, puis les projete sur les oeuvres de Bacon. Et toutes les oeuvres entrent en mutation, ondulent comme le signe d’une respiration, les tableaux recrachent les bouts de papier à ses pieds. Et le mur se découpe. Hyper sensible, elle sent commme une explosion de déguisements, les personnes présentes commme des oeuvres vivantes. Le mur tombe en fragments, lentement. Une ententante mélodie se fait entendre. Lorsque le bruit s’interrompt, les verres vibrent. Les feuilles de papier entreposés de ci de là s’envolent. En vain elle regarde les morceaux du mur, et se met à macher les feuilles attrapés au vol. Des bouts de tracts. Il y a des choses écrites dessus. Des phrases importantes. Elle mache plus vivement. Les visiteurs la regardent, elle a un certain succès. Elle en assez d’attendre. Tous ces fragments de mélodies oubliés. Elle avale les mots un par un maintenant. Au milieu de cette exposition désormais : une débauche de sons, de notes, de mots en litanie vulgaire. Au hasard elle continue à attraper les bouts de papier. Au sol tout ce papier soigneument maché, et ces présences, les pensionnaires…

fragment 001

I carry a world in the back of my eyes, inhabited by little ghosts. They write stories on mirror-books bigger than them, that I cannot decypher. Seemingly random characters spread unevenly accross the pages.

df          ty j    h
f4      x r   o p    i
f    g   h     upl
t   r        e

All the pages are mirrored one into another.
When they decide to re-organize their library, which happen regularly, I can hear the static-like hum produced by the friction of the books; the glass scrapping against the glass. With much effort, they pull the books [behind them] to put them in the right places. The right places are not the same each time they re-organize the cluster of books.
One time I heard two little ghosts talking about a novel, a masterpiece, apparently. From what I understood, it’s a story about a circular labyrinth made of ruined mirrors. In this labyrinth live strange beings following strict and complex rules that none of the beings know the origin. Still, they follow the rules with diligence and those who are caught breaking the rules are stoned by the others. They said the rules where so complex that there was another entire book that described them all. But that book is lost, and without it, the masterpiece is unintelligible. They still read it, every one of them has read it. It’s mandatory at the school they go. The final test at the school is based on it. They have to reverse-engineer the book of rules from the masterpiece book. No one has ever passed the test successfully. Those who fail at the test are bound to work in the library. A lot of little ghosts work in the library. And that’s why they frequently re-organize the books, they have to keep themselves busy. That’s why I hear this almost constant electrical-like hum. It gets annoying over time. I thought about sending them a letter to let them know of this ever growing annoyance but I do not know the address of the back of my eyes. Do the back of my eyes, or the passage behind my eyes has an address? How could I know?

#P5tweets by @zproc / me

My #P5 tweets are gone since I can’t re-activate my @zproc Twitter account, so here’s some. [edit: Twitter stopped bugging and my @zproc account has been re-activated. So the #P5 tweets will turn out again in the specific search.]


int m,k;void draw(){background(0);for(m=0;m++<80;){k++;k=k%255;stroke(0,k,m);noFill();rect(m*sin(k)+50,m*cos(k)+50,5,5);}}//#P5


int j=100,m,k;void draw(){background(0);for(m=0;m++<80;){k++;k=k%255;fill(j,j);quad(m*sin(k),m*cos(k),k,j,j,j,j,j);}}//#P5 what am i doing


int j=100,m,k;void draw(){background(0);beginShape();for(m=0;m++<80;){k++;fill(j);vertex(m*sin(k)+50, m*cos(k)+50);}endShape();}//#P5


int j=100,m,n;void draw(){for(m=0;m<j;m++){stroke(0,f(),f(),40);line(m,0,m,j);line(0,m,j,m);}}float f(){return noise(millis())*j;}//#P5


float j;void draw(){loadPixels();int i=0;while(i<9999){j=noise(millis())*150;pixels[i]+=color(j);updatePixels();i++;}}//#p5 evolving


float x;int j=99;void setup(){size(j,j,P3D);}void draw(){background(j);x+=.001;float n=noise(x)*j;translate(n,n,0);rotateY(n);box(n);}//#P5


int i,w=400,k;void setup(){size(w,w);}void draw(){if(i%w<1)clear();fill(0,k*8,k*4,200);rect(w-i++%w,random(w),k=(int)random(25),k);}//#p5 copy(0,0,w,w,-2,0,w,w);


float j,m;void draw(){beginShape();for(m=0;m++<60;){background(0);j=random(m);noStroke();vertex(j*sin(m)+50,j*cos(m)+50);}endShape();}//#P5


float j,m;void draw(){beginShape();for(m=0;m++<50;){fill(0,j=random(150)+m,j,m);vertex(j*sin(m)+50,j*cos(m)+50);}endShape();}//#P5 hmm

int j=400,m,n,k;void setup(){size(j,j);}void draw(){for(m=0;m<j;m+=5)for(n=0;n<j;n+=5){k++;k=k%255;fill(noise(millis())*j,m);rect(m,n,5,5);}}//#P5


another gif #Processing experiments

I made different variations while tweaking this sketch… Hopefully I’ll be able to transform it in an audio reactive visuzalization. If this goes well maybe I’ll finally try to make this in some sort of 3D / 3D planes…

Made two instagram video of two of the variations:

(it’s prettier without all the dithering and not in only 4 or 8 colours)



This short one also, another variation.

[soundcloud url=”http://api.soundcloud.com/tracks/88789838″ params=”” width=” 100%” height=”166″ iframe=”true” /]

[soundcloud url=”http://api.soundcloud.com/tracks/99209749″ params=”” width=” 100%” height=”166″ iframe=”true” /]

[soundcloud url=”http://api.soundcloud.com/tracks/99341508″ params=”” width=” 100%” height=”166″ iframe=”true” /]

+ http://chibacityblues.bandcamp.com/album/disquiet-slumber-drafts