Eli Atlas

Enabling Flash debug player in google Chrome

Posted in Uncategorized by eli on August 2nd, 2011

Every time I update my Flash player in Chrome, or need to switch to debug version I get stuck. I keep on forgetting how to do it, and find myself googling for it.

So I figured, why not to put it on my blog, easiest place to find it :)

Future me, here you go:

* Navigate to chrome://plugins/ in Chrome

* Press “”+Details” on the right

* Find Flash and disable the version you’ve got

* Enable the other version

* Call Mom, she misses you

Cheers!

 

HTML5 and Flash post on rounds tech blog

Posted in Uncategorized by eli on June 28th, 2011

Just posted a new article on rounds tech blog. HTML5 vs Flash thing never gets old :)

Check it out here

Flash Player 10.3 Advanced Echo Cancellation(AEC) Errors

Posted in 10.3,ActionScript,AEC by eli on June 19th, 2011

Today I tried to use Echo Cancellation feature for the first time. I received couple of errors which wasted half of my day.

Here they are:

VerifyError: Error #1014: Class flash.media::MicrophoneEnhancedOptions could not be found
TypeError: Error #1006: getEnhancedMicrophone is not a function

So, assuming that you have the right Flex SDK and the right playerglobal.swc, the only thing you need, is to add following line to your compiler arguments window in Flash Builder:

Project > Properties > Additional compiler arguments:

-swf-version=12

Just to be sure, here you can get the SDK. You will need 4.5
http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4
And here the right playerglobal.swc. I don’t know how much time this link will be available, so if it isn’t, just try to look for playerglobal.swc for Flash Player 10.3.
At the time I write this, flash player 11 still does not support AEC, so be careful and be sure you use playerglobal.swc for Flash Player 10.3 and not Flash Player 11.

Hope I could help, have fun!

AS3 flash.trace.Trace Hidden Class

Posted in ActionScript,Flash,Uncategorized by eli on February 27th, 2011

Yep, there is a Trace() class. Actually it is  flash.trace.Trace class to be more specific.

Found it here (Russian).

It is not documented, but really cool. It exists since Flash Player 9.0.45, if I’m not mistaken, and it is used in FlashBuilder profiler. So what it does you ask? I”ll tell you what it does… It allows trace all the function which are being fired in your SWF.  And the arguments of the functions. And the lines of the functions if you want. Since there is no documentation for it, the only way to find out is to look in tamarin sources. I found this link on some adobe’s forum:

http://hg.mozilla.org/tamarin-central/file/e774dfe22b39/extensions/Trace.as

Here are the methods of the class:

setLevel(l:int, target:int=LISTENER)

First argument is level, second is target. Level can be one of the following:


METHODS:int = 1;					// method entry only
METHODS_WITH_ARGS:int = 2;				// method entry and arguments
METHODS_AND_LINES:int = 3;				// method entry and line numbers
METHODS_AND_LINES_WITH_ARGS:int = 4;	               // method entry, arguments and line numbers

and target can be FILE or LISTENER. Use FILE if you want to see regular traces in log file. Use LISTENER for your own function.

setListener(f:Function)

With this method you will be able to set the listener for all the traces. Listener function should be able to receive 4 parameters:

private function traceListener(fileInfo:String,lineNumber:String,classAndMethod:String,methodArguments:String):void

And here you go, example code:

import flash.trace.Trace;
import flash.text.TextField;

var outputField:TextField = new TextField();

outputField.width = outputField.height = 300;
outputField.multiline = true;
addChild(outputField);

Trace.setLevel(Trace.METHODS_AND_LINES_WITH_ARGS, Trace.LISTENER);
Trace.setListener(traceListener);

function traceListener(  fileInfo:String,  lineNumber:String,  classAndMethod:String,  methodArguments:String):void
{
	outputField.appendText("-" + classAndMethod + " " + methodArguments + "\n");
}

function initTrace(arg1:String, arg2:String):String
{
	return arg1 + " " + arg2;
}

initTrace("a", "b");
stop();

And here is the result:

If you don’t see anything, means you don’t have Flash Debug version installed. Get it here

As far as I can see, this class may be really handy sometimes. It can get little annoying if you have some ENTER_FRAME listeners or intervals, but you can easily overcome it with custom traceListener()

By the way …

There is another way to trace all functions in runtime, and it is changing your mm.cfg AS3Trace property. But although mm.cfg is much more powerful in other aspects, the Trace class is much more useful for traces in most cases I would think off. All the stuff about mm.cfg you can read here:

http://jpauclair.net/2010/02/10/mmcfg-treasure/

Good luck tracing!

Flash Israel 2011 summary and conclusions

Posted in Flash,General by eli on February 24th, 2011

So, Flash Israel 2011 is over, and it was great!

Cudos to Almog, he did a great job, Flash Israel 2011 was the biggest Flash event ever made in Israel. I have no idea how much work did he invest in this, but it must have been a lot! The speakers he managed to bring here are Flash rock-stars. Ben Forta, Lee Brimelow and Grant Skinner are pretty heavy guys.

As for the sessions, I didn’t go to each and everyone, but those I visited were really good. The most useful for me were BlackBerry and Gaming sessions by Lee Brimelow.  Surprisingly, the Debugging And Testing Flash and Flex Applications by Lior Bruder was really interesting, although I didn’t expect much from it. The most interesting and inspiring were the sessions by Grant Skinner.

This is the first event of this kind I attended, so I have a couple of conclusions. First,  I must say that going to events like this is not the best way to learn technology. The material of the lectures were dedicated for  intermediate and newbie developers. The stuff speakers were presenting can easily be found on the web, you only have to be reasonably interested in the platform. That being said, there is no other way to see Lee in person (which was really exciting) and to ask him and other guys direct questions. And of course this is the best way to get to know people from the industry. My general conclusion is that it’s much better to attend events like this as a speaker ;)

So, I had a really good time, and looking forward to next event.

See you next year!

First Post – 2011

Posted in Blogging by eli on January 12th, 2011

Happy new year everybody!

I decided that 2011 will be a year of blogging for me.  So I needed a first post, and there is no best place to start than making a good plan.  In order to make one,  I need to choose goals for this blog. So here they are – things I would like to achieve this year with the help of this blog:

  • Learn to write. It may sound simple but as I discovered during my work at Gixoo, when you need to write 3 simple posts, it may get really hard.
  • I am working right now on couple of  mobile applications, and I would like to publish them and share my knowledge in this field.
  • There are lots of new great new features in Flash Platform that came recently or will come shortly.  Audio AEC, new 3D api, sockets in AIR 2.5,  StageVideo, Cirrus to name a few. I want to write about them too.
  • I would like to know better Java and PHP, and connection between them and Flash. No better way to learn than posting it here!

The plan is 30 posts this year, we will see how it works :)

Once again,  have a great year, and good luck!

Tagged with: ,