Red5 with javascript python ruby and coffee?

Red5 (the opensource flash multimedia server) will support server side javascript, Ruby, Python and Java?
That’s terrific!
Well, it seems the next 0.6 RC1 version of Red5 will do that! The release is scheduled by next Monday and if that’s true I definitively will find the time to look inside it 🙂

AS3 SoundMixer, my turn

It seems everybody did a test with the ActionScript3 SoundMixer class 🙂
How many of you still remember the days of FlashKit spectrum analyzer?
It seems so long time ago when we had to find a way for extract spectrum informations from mp3 files..
Btw, now it’s my turn with a little experiment
Flash player 9 beta 3 is required
[kml_flashembed publishmethod=”static” fversion=”10.0.22″ movie=”http://blog.sephiroth.it/wp-content/uploads/2006/05/sound_mixer2.swf” width=”350″ height=”200″ targetclass=”flashmovie” fvars=”mp3=http://blog.sephiroth.it/wp-content/uploads/2006/05/song.mp3″]

Get Adobe Flash player

[/kml_flashembed]

P.S. The song is from Epica:
album: Consign to Oblivion album
track: Huban K’u “A new Age Dawns – prologue”

[attachments docid=773 force_saveas=”1″ logged_users=”0″]

DragController updated

Thanks to the hard work of Nicolas Zeh the component I did some time ago (draggable controller) has now lot of changes!

  • a new name: DragController
  • drag and drop multiple items at once if multipleSelection is set to true for a component
  • added the following methods to the DragEvent Object:
  • evt.checkType
  • evt.addItem
  • evt.removeItem
  • evt.addAndRemoveItem
  • the methods were renamed to fit Macromedias naming conventions for methods
  • i lowered the addReference restriction that both components have to be UIComponents. Now only the source has to be an UIComponent and the target suffices to be a MovieClip.
  • added a veto method for the “drag_start” event. So user can decide on this Event if he would like to allow dragging of this specific item.
  • added an onDropData method besides the Event handlers. So you can assign this method directly to a defined target component.
  • added flags similar to DragAndDropTree component. These are:
  • DENYDRAGFOLDER (only tree component)
  • DENYDRAGITEM (only tree component, as i makes no sense for other components)
  • DENYDROPINTOITEM (only tree component)
  • DENYDROPINTOFOLDER (only tree component)
  • DENYDROPINTO (only tree component)
  • DENYDROPINBETWEEN this option disallows setting a specific target index position and will add the item at the end of the List, DataGrid, Tree
  • removed some bugs concerning Focus on Component and selectedItems. But i am not sure if there aren’t some left due to Flash’s strange Focus mechanisms. (sure, I still haven’t understood the focus mechnism of MM components)

There’s also a very comprehensive help of the component (just look in the F1 flash help panel)

[attachments size=large docid=768 force_saveas=”1″ logged_users=”0″]

Open Source ActionScript 3 Libraries Updated

Macromedia (ops.. Adobe) has just released a new beta version (3rd beta) of Flex, Flex Charting Components, Flex Data Service Components and Flash Player 9 (was 8.5).
In addition to new beta builds the open source ActionScript 3 libraries have been updated too.
These libraries include a number of changes:
* Updated to work with beta 3
* Some API renaming (mostly in corelibs : com.adobe.utils)
* Removed some redundant APIs (mostly in com.adobe.utils)
* Fixed bug where events where not being documented in docs
Libraries available are:
* corelib
* FlexUnit
* Flickr
* Mappr
* RSS and Atom libraries
* Odeo
* YouTube
also available for download via SVN using:

svn checkout http://labs.adobe.com/subversion/flashplatform/

For more informations see adobe labs
http://labs.adobe.com/svn/flashplatform/?/projects/

ActionStep Alpha 1 Released!

ActionStep crew released the first alpha release of ActionStep component framework.
It’s been a while since I’m looking at this project and I must admit they’re doing a great and hard work.
What is ActionStep?
ActionStep is an Actionscript 2.0 implementation of a subset of the OpenStep Application Kit and aim to be a valid alternative to Flash V2 Components.
The alpha 1 release comes with an example (through buildExample.bat, which compile using MTASC). See the example here
Links
ActionStep on OSFlash: http://osflash.org/doku.php?id=actionstep
ActionStep components’ list: http://osflash.org/actionstep_components_list
Download
It can be downloaded from: actionstep_alpha_1.zip
http://actionstep.org/

SEPY 1.5.1

Due to various changes in latest version of SEPY, there was a major subversion change from 1.0.x to 1.5.x
Those are:

  • New left Panel rendering. The multline notebook has been replaced by a vertial custom notebook
  • Regular Expression Kit. Panel which allows you to test match/search regular expressions and create the ActionScript 3.0 code for using them.
  • Enhancement of the TODO Panel.
    Now you can define, using this panel, different words you want to be marked both in the right border panel and listed in the todo panel itself.
  • Import Classes panel. Search/Select which class to import in your document and manage a list of favourites classes.
  • Speed up improvement in the code autocompletion
  • Added “Match multiline mode” in Find&Replace in files

P.S. Installer is available for both Win32 and OSX (compiled on 10.4).
http://sourceforge.net/project/…id=114139&release_id=373747

Draggable Controller

After reading all the comments added on the Drag n’ Drop Tree component made some time ago I spent some time to make a small component which is capable to manage drag and drop between almost all the Macromedia builtins component (such as List, DrataGrid, Tree…).
It requires Flash 8 to work because I’m using BitmapData for clone the dragged item (wow, this is incredible easy to do now 🙂 )
You can see a demo here: DraggableController.html
This is the code used in the .fla, in order to manage the component events:

/**
Setting up the list of relationship between components
**/
dc.AddReference(this._datagrid_1, this._list_1)
dc.AddReference(this._datagrid_1, this._datagrid_2)
dc.AddReference(this._datagrid_1, this._tree_1)
dc.AddReference(this._datagrid_1, this._datagrid_1)
dc.AddReference(this._list_1, this._list_2)
dc.AddReference(this._list_1, this._text_ctrl_1)
dc.AddReference(this._text_ctrl_2, this._list_2)
dc.AddReference(this._tree_1, this._list_2)
dc.AddReference(this._tree_1, this._text_ctrl_2)
dc.AddReference(this._tree_1, this._text_area_1)
dc.AddReference(this._list_2, this._text_area_1)
/** drag complete listener **/
dc.addEventListener("drag_complete", this)
/**
evt:
- target_component = drop destination component
- source_component = drag n' drop source component
- source_item      = item dragged
- source_index     = selectedIndex of the source component
- target_item      = drop destination item inside target_component
- target_index     = drop destination index
IMPORTANT: once received evt you must Veto() or Skip() the evt itself.
evt.Skip() will simply remove the dragging movieclip
evt.Veto() will move back the dragging item to its source
*/
function drag_complete(evt:Object):Void{
if(evt.target_component == _list_1){
evt.Veto()
} else if(evt.target_component == _datagrid_2 or evt.target_component == _datagrid_1){
evt.source_component.removeItemAt(evt.source_index)
evt.target_component.addItemAt(evt.target_index, evt.source_item)
Selection.setFocus(null)
evt.target_component.selectRow(evt.target_index, false, false)
evt.Skip()
} else if(evt.target_component == _tree_1){
evt.source_component.removeItemAt(evt.source_index)
var node:XMLNode = new XMLNode(1, "node")
node.attributes.label = evt.source_item.title +  "(Cloned)"
node.attributes.data = evt.source_item
evt.target_item.appendChild(node)
evt.Skip()
} else if(evt.target_component == _text_ctrl_1){
evt.source_component.removeItemAt(evt.source_index)
evt.target_component.text = evt.source_item.label
evt.Skip()
} else if(evt.target_component == _list_2 && evt.source_component == _tree_1){
evt.source_item.removeNode()
evt.source_component.dataProvider = evt.source_component.getDataProvider()
evt.target_component.addItemAt(evt.target_index, evt.source_item.attributes.label)
evt.Skip()
} else if(evt.target_component == _text_area_1 && evt.source_component == _list_2){
evt.source_component.removeItemAt(evt.source_index)
evt.target_component.text = evt.source_item.label
evt.Skip()
} else if(evt.target_component == _text_area_1 && evt.source_component == _tree_1){
evt.source_item.removeNode()
evt.source_component.dataProvider = evt.source_component.getDataProvider()
evt.target_component.text = evt.source_item
evt.Skip()
} else {
evt.Veto()
}
}

The .zip with all the file is available here, if anyone want to test and improve it.

[attachments docid=691 force_saveas=”1″ logged_users=”0″]

mtascGUI

mtascGUI Reading today the MTASC mailing list I’ve read that a new Windows GUI for MTASC has been just release.
Quoting the author words: “after setting all the options (e.g. all mtasc paramters) you can switch to a small window, called ‘launch bar’, that will always stay on top of other applications, so that compiling with mtasc is only one click away, no matter where you are in your editor. This launch bar also lets you choose in which FlashPlayer version you would like to open your swf-file (options are 6, 7 and 8, provided that you install the standalone players that come with the flash ide’s)…”
What is MTASC?
MTASC is the first ActionScript 2 Open Source free compiler
http://www.kugelfunk.de/as/english/