PyAMF 0.3 Released and Sample on Google App Engine

A great Action Message Format (AMF) remoting kit for server side for the pythonistas is pyAMF, they recently released PyAMF 0.3 and have a sample running up on Google App Engine. There is also a tutorial for getting PyAMF running on Google App Engine. Aral Balkan got this running as well.

Features of pyAMF currently:

More on the PyAMF library:

Advertisements

AS3, Convert Python Code to Flex AS3 with flex-pypy

I have officially been sucked into the Python vortex. I recently have really been digging IronPython, Jython and good old plain Python but have not ventured here yet. Google (They employ Guido), Microsoft (IronPython) and Sun (Jython) are all becoming infected pythonistas as well. But this is just too cool, Python to AS3 code with flex-pypy. This project is very young but could be fun, source at Google Code.

Haxe has a similar premise where it can compile to Flash6-9 versions of actionscript 2-3 which makes for a system with better reach. Python code for this is lots of fun and very flexible. Python is becoming a baseplane language and one great language for transcending platform lock-in.

Check out this snippet pulled from here (click to see sample game)

#/usr/bin/env python
“””
This simple example has very little to do with the pygame
chimp example, except that it will act the same (more or less)
and it uses the same resources, only they got converted to
mp3s, pngs.
“””

#Import Modules
from pypy.translator.flex.modules.flex import *

class MyRect:
def __init__(self,x,y,w,h):
self.x, self.y,self.w,self.h = x,y,w,h

SCREEN_W = 468
SCREEN_H = 60

class Game:
def __init__(self):pass

def init(self,screen):
self.screen = screen
screen.layout = ‘absolute’
screen.setActualSize(SCREEN_W, SCREEN_H)

screen.addEventListener(‘mouseMove’,mousemotion)
screen.addEventListener(‘enterFrame’,do_loop)
screen.addEventListener(‘click’,chimp_whip)

self.bg = load_sprite(“py_background_png”);
self.screen.addChild(self.bg)

self.chimp = load_sprite(“py_chimp_png”);
self.screen.addChild(self.chimp)

self.orig_y = self.chimp.y

img2 = self.fist = load_sprite(“py_fist_png”)
self.screen.addChild(img2)
img2.move(400,img2.height/2)
self.move = 1
self.spin = 0
self.hit = 0
self.hit_move = 1

self.sfx = {}
self.sfx[‘whip’] = load_sound_resource(“py_punch_mp3”)
self.sfx[‘nohit’] = load_sound_resource(“py_whiff_mp3”)

def loop(self):
img = self.chimp
if self.spin:
self.spin -= 1
img.rotation = self.spin*24
else:
img.x += self.move * 8
if img.x > SCREEN_W-img.width:
self.move = -1
if img.x < 0: self.move = 1 if self.hit: self.hit -= 1 self.fist.y += 6 * self.hit_move if self.hit SCREEN_W - img_halfw: newx = SCREEN_W - img.width if newx img.x and e.stageX < img.x+img.width: game.sfx['whip'].play() game.spin = 20 else: game.sfx['nohit'].play() def flash_main( x=1 ): game.init(castToWindow(x))[/sourcecode]