AMFPHP has new developers
After several inactivity months, the popular remoting library, AMFPHP, has two new developers involved.
A 1.9 stable version is available and a new 2.0 version is planned.
Changes in new version are:
-Compatible with php5.3 and a new service browser has been completely rewritten.
You can download latest version here.
A music sequencer, my latest work with fp10 sound api
After some inactivity months here I want to show you my latest creation. It's a sequencer for vifit.nl
You can try it here allowing you to save , load and publish your creations.
thanks to Andre Michelle and Joa Ebertfor his work with popforge.
Adobe is going to publish RTMP's specs
Based on this note , Adobe in his fight against Microsoft Silverlight, will publish the specifications of the RTMP protocol in the 1st quarter of 2009.
RTMP is a protocol created by Adobe and used for streaming multimedia and data, between the Flash Player and Flash Media Server.
It had been parcially Reverse engineered and used in some alternatives like Red 5 previously.
A new tween engine is out
Shane McCartney has published a new open sourced tween Engine called Tweensy.
The author claims that it's faster than the best (for me) tween engine used today: TweenMax
At first sight it looks a bit complex for novice developers. I will experiment a bit with it and then post some src code here.
you can check the Google code space for the project : here
Author entry on his: Blog
Nuevo Book Sobre Flash Open Source
Ayer salio un nuevo libro sobre una tematica interesante .. OS Flash.
El nombre del libro es Essential Guide Source Flash Development
Saludos!
Alternativa3d is OUT!!!!!
i have been waiting this a long time. Alternativa3d Engine is out.
you can read the full notice in the Alternativa's webpage :http://blog.alternativaplatform.com/en/
if you wanna go directly to the point , you should check this page :http://alternativaplatform.com/en/
i'll be testing the engine this weekend , stay tune.. more news are coming!!
Google maps AS3 Api is Out!!
Google has just released an AS3 version of their maps.
it works with Flash and Flex.You just need to import the SWC and write some code to get it working.
get the SWC here
Flash player 10 public beta released!
New version of flash player including features like 3d Support, advaced text renderer, Hydra's effects loader (now Pixel Blender) and the posibility to write local files without using the server.
updated: secocular has written this excellent article!
Efecto Tv Rota (TV Noise)
Les dejo esta clase pequeña que desarrolle, tvNoise
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.getTimer; import flash.utils.Timer; /** * ... * @author EzeQL * @see www.EzeQL.com/blog */ public class NoiseTV extends Sprite { private var _bitmap:Bitmap; private var _bitmapData:BitmapData; private var _bmpWidth:int; private var _bmpheight:int; private var _timer:Timer; public function NoiseTV(pWidth:int=400,pHeight:int=300) { _bitmapData = new BitmapData(pWidth, pHeight, false, 0x000000); _bitmap = new Bitmap(_bitmapData); _bmpheight = pHeight; _bmpWidth = pWidth; } public function start():void { addChild(_bitmap); //Prueben Usar Ambos :=> this.addEventListener(Event.ENTER_FRAME, NoiseTV_EnterFrame); //_timer = new Timer(50); //_timer.addEventListener(TimerEvent.TIMER, Timer_TimerEvent); //_timer.start(); } public function stop():void { this.removeEventListener(Event.ENTER_FRAME, NoiseTV_EnterFrame); //_timer.stop(); } private function drawNoise():void { var seed:int = int(Math.random() * int.MAX_VALUE); //_bitmapData.lock(); _bitmapData.noise(seed, 0, 255, 0, true); // este hermoso metodo hace todo el trabajo por nosotros :) :) //_bitmapData.unlock(); // para este uso no gana performance ..pruebenlo ustedes. } public function restart():void { stop(); removeChild(_bitmap); _bitmapData = new BitmapData(_bmpWidth, _bmpheight, false, 0x000000); _bitmap = new Bitmap(_bitmapData); start(); } private function NoiseTV_EnterFrame (event:Event):void { //var inicio:uint = getTimer(); drawNoise(); //trace(getTimer() - inicio); } private function Timer_TimerEvent(event:TimerEvent):void { //var inicio:uint = getTimer(); drawNoise(); //event.updateAfterEvent(); => en nuestro caso no tiene sentido :) //trace(getTimer() - inicio); } public function get bmpheight():int { return _bmpheight; } public function set bmpheight(value:int):void { _bmpheight = value; } public function get bmpWidth():int { return _bmpWidth; } public function set bmpWidth(value:int):void { _bmpWidth = value; } } } |
clase Main,Ejemplo de uso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package { import flash.display.Sprite; import flash.events.MouseEvent; /** * ... * @author EzeQL * @see www.EzeQL.com/blog */ public class Main extends Sprite{ private var noiseTv:NoiseTV; public function Main() { noiseTv = new NoiseTV(); addChild(noiseTv); noiseTv.start(); stage.addEventListener(MouseEvent.CLICK, Stage_Click); } private function Stage_Click(e:MouseEvent):void { noiseTv.bmpheight = Math.random() * stage.stageHeight; noiseTv.bmpWidth = Math.random() * stage.stageWidth noiseTv.restart(); } } } |
SimpleButton, Botones en as3
La clase SimpleButton proporciona una forma fácil de crear los típicos estados de un botón pasandole las imagenes de los estados que este mostrara.
Ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | package { import flash.display.Graphics; import flash.display.Shape; import flash.display.SimpleButton; import flash.display.Sprite; import caurina.transitions.Tweener; import flash.events.MouseEvent; import flash.filters.DropShadowFilter; import flash.geom.Rectangle; public class Main extends Sprite { /*www.ezeql.com*/ private var _button_on:Sprite; private var _button_out:Sprite; private var _button_press:Sprite; private var _simpleButton:SimpleButton; public function Main():void { _button_on = new Sprite(); _button_out = new Sprite(); _button_press = new Sprite(); _button_on.addChild(drawButton(0xff0000)); _button_on.filters = [new DropShadowFilter()]; _button_out.addChild(drawButton(0x00ff00)); _button_out.filters = [new DropShadowFilter(8)]; _button_press.addChild(drawButton(0x0000ff)); _button_press.filters = [new DropShadowFilter(15)]; _simpleButton = new SimpleButton(_button_on, _button_out, _button_press,_button_on); _simpleButton.x = 150; _simpleButton.y = 125; _simpleButton.addEventListener(MouseEvent.CLICK, SimpleButton_Click); addChild(_simpleButton); } private function SimpleButton_Click(e:MouseEvent):void { trace("click"); } private function drawButton(pColor:uint ):Shape { var _rect:Shape = new Shape(); with (_rect.graphics) { lineStyle(1); beginFill(pColor); drawCircle(0,0,100); } return _rect; } } } |