i been using the Sound Manager from Matt Przybylski
for a while and added some little updates:
first make it work with the latest TweenLite Framework and to do that, you just need to make these changes:
Sound Manager
mm.cfg file!
I’ve just found this incredible post by Jean-Philippe Auclair
about the mm.cfg file!
this two flasgs are just great!
TraceOutputBuffered = 1|0
and the :
AS3Verbose = 1|0
you can read all the features at: http://jpauclair.net/2010/02/10/mmcfg-treasure/
GrupoW + Github!
we juts start using github (social coding)
just in case you want to follow any of us, here we are :
cheers!
RobotLegs and Flash IDE
i was trying to find a solution for compiling Robotlegs from Flash IDE (CS3 or CS4)
and found two approaches:
the first one comes from Jesse Warden combining mxmlc & Flash CS4 or CS3 with GAIA Framework.
the second one (that i think is a lot easier) i found it at Helmut Granda post using XML configuration to initialize the injection from the SwiftSuspendersInjector, you can find more info here and in the SwiftSuspenders README file.
so, i tried the second one and here’s the Hello Flash example compiled from flash CS3
download here.
enjoy.
Strategy Pattern
Strategy Pattern is my favorite one, and why?
because it’s so simple for implamentation; it’s based on polymorphism, an the basic idea is to encapsulate the code that you think is gonna change.
for example let’s say that you have and Encryptor Class:
More on Regular Expressions!
i was trying to understand what’s happening behind scenes in the Log Class in Flex Framework
if you digg a little bit in their Classes you’ll find something like this
1 2 3 4 5 6 7 8 9 10 11 12 13 | public function debug(msg:String, ... rest):void { if (hasEventListener(LogEvent.LOG)) { // replace all of the parameters in the msg string for (var i:int = 0; i < rest.length; i++) { msg = msg.replace(new RegExp("\\{"+i+"\\}", "g"), rest[i]); } dispatchEvent(new LogEvent(msg, LogEventLevel.DEBUG)); } } |
so what’s means msg = msg.replace(new RegExp(”\\{”+i+”\\}”, “g”), rest[i]); ??????
that means whenever you find “{0}” …. “{n}” replace it by the string rest[0] … rest[n]
so you can use
1 2 | Log.debug("the song says {0} little {1} little {2} little-endians" , 'zero','one','two'); //outputs: the song says zero little one little two little-endians |
for me is so hard to read a Regular Expressions especially because i always forget
all means of meta characters and meta secquencies hehehe
Signals
Robert Penner shows to the world his new Event System called Signals
it’s a cool way for managing Events in AS3 inspired by C# events and signals/slots in Qt.
Concept
- A Signal is essentially a mini-dispatcher specific to one event, with its own array of listeners.
- A Signal gives an event a concrete membership in a class.
- Listeners subscribe to real objects, not to string-based channels.
- Event string constants are no longer needed.
Features
- Remove all event listeners:
- Retrieve the number of listeners
- Listeners can be added for a one-time call and removed automatically on dispatch:
- Any object type can be dispatched to listeners. But using IEvent will enable full functionality.
- A Signal can be initialized with an event class that will validate event objects on dispatch (optional):
- If the Signal’s event class is specified, each listener is checked on add() to ensure it declares at least one argument.
- Signals can be placed in interfaces to indicate the events dispatched by a class.
- Events can bubble recursively through .parent independent of the display list (experimental).
- Code was developed test-first.
Sintax
comparison:
1 2 3 4 5 | // with EventDispatcher button.addEventListener(MouseEvent.CLICK, onClick); // Signal equivalent; past tense is recommended button.clicked.add(onClicked); |
Create a Signal for a class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ////// in Item class: // Recommended: make the signal read-only. protected var _ready:Signal; public function get ready():Signal { return _ready; } public function Item() { _ready = new Signal(this, ReadyEvent); } protected function sendReady():void { _ready.dispatch(new ReadyEvent()); } ////// in another class: var item:Item = new Item(); protected function onItemReady(e:ReadyEvent):void { ... } item.ready.add(onItemReady); |
more info on Signals
AS3 Signals Getting Stronger
The Community Responds to AS3 Signals
My New AS3 Event System: Signals
more info on AS3 Events
My Critique of AS3 Events – Part 1
AS3 Events – 7 things I’ve learned from community
My Critique of AS3 Events – Part 2
i like this kind of people, never comfortable, always trying to make improvements, changing the way we see things and Robert Penner is not and exception.
FlashDevelop Plugins
Today we just found two great plugins for FlashDevelop
first: Reopen closed tab plugin
just press Ctlr + Shift + T and your last closed tab would be open again (firefox style! XD)
second: FlashdevelopPMD
integrates the new flexPMD from Adobe Labs to FlashDevelop
FlashDevelop is a great tool for coding and of course is our “battle horse” here at GrupoW
enjoy it!
Sound Pitch
i was talking with Caleb (the sound expert here at Grupow) a few days ago about how the Pitch works behind the scenes
i saw a great usage of the Pitch effect in Braid Game and i wanted to give a try in the Flash’s new Sound API
…………. but then Andre Michelle came with this!!!
man………. that guy is crazy.
Conways Game Of Life
is an old AS2 experiment that i made some time ago
the rules are:
1. Any live cell with fewer than two neighbours dies, as if by loneliness.
2. Any live cell with more than three neighbours dies, as if by overcrowding.
3. Any live cell with two or three neighbours lives, unchanged, to the next generation.
4. Any dead cell with exactly three neighbours comes to life.
download the source files and and try different grid inputs
