I know SO pals are not fans of "versus" questions but... even rephrasing the tittle a bit, the versus part is still there, so, why hide it.
Basically, I d like to know when and why should I use a singleton or a static class, what can offer a singleton that a static class cant, and vice versa.
For a long time I used both, and I cant see a reason why I shouldn t use one over the other.
Thanks.
     
Both are basically global variables with caveats.  Static classes prevent inheritance, and Singletons are ugly and add overhead with a property lookup.  Both make automated testing difficult.
AS3 supports global variables, so why not use those?
Static:
package com.example
{
    public class Config
    {
        public static var VERSION:uint = 1;
    }
}
Singletons:
package com.example
{
    public class Config
    {
        public static var instance:Config = new Config();
        public var version:uint = 1;
        public function Config()
        {
            //Boiler plate preventing multiple instances
        }
    }
}
Global variable:
package com.example
{
    public var config:Config = new Config();
}
class Config
{
    public var version:uint = 1;
}
Now, let s say even though you only want a single instance of the class in your production app, you need multiple instances to write tests.  You can make a public class Config, and use com.example.config = new Config() to reset.  All the places that reference your global variable are now using the new instance, and you can even do fancy things like inheritence.
For example:
if(inDebugMode)
{
    com.example.config = new DebugConfig();
}
{
    com.example.config = new Config();
}