Voici le code qui en atteste:

var o:Object = { x : 0 , y : 0 , h : 100 , w : 100 } ;

trace( ">>>> first test" ) ;

var i:uint ;
var startT:Number = getTimer();

i=0 ;
for( i ; i < 50000 ; i++ )
{
    o.x += i ;
    o.y += i ;
    o.h *= i ;
    o.w *= i ;
}
trace( trace( getTimer() - startT ) ) ; // 50

trace( ">>>> second test" ) ;
startT = getTimer();
i=0 ;
for( i ; i < 50000 ; i++ )
{
    with(o)
    {
        x += i ;
        y += i ;
        h *= i ;
        w *= i ;
    }
}
trace( trace( getTimer() - startT ) ) ; // 139

Pour aller plus loin, on pourrait tester ce code avec des propriétés virtuelles:

// la classe Test

package
{
    public class Test
    {
         public function Test()
         {
             //
         }
    
         private var _x:uint ;
         private var _y:uint ;
         private var _h:uint ;
         private var _w:uint ;
         
         public function get x():uint
        {
             return _x ;
         }
         public function set x( value:uint ):void
        {
             _x = value ;
         }
         
         public function get y():uint
         {
             return _y ;
         }
         public function set y( value:uint ):void
         {
             _y = value ;
         }
         
         public function get h():uint
         {
             return _h ;
         }
         public function set h( value:uint ):void
         {
             _h = value ;
         }
         
         public function get w():uint
         {
             return _w ;
         }
         public function set w( value:uint ):void
         {
             _w = value ;
         }
    }
}

// le bench

var o:Test = new Test() ;

trace( ">>>> first test" ) ;

var i:uint ;
var startT:Number = getTimer();
i=0 ;
for( i ; i < 50000 ; i++ )
{
    o.x += i ;
    o.y += i ;
    o.h *= i ;
    o.w *= i ;
}

trace( trace( getTimer() - startT ) ) ; // 32

trace( ">>>> second test" ) ;

startT = getTimer();
i=0 ;
for( i ; i < 50000 ; i++ )
{
    with(o)
   {
        x += i ;
        y += i ;
        h *= i ;
        w *= i ;
    }
}
trace( trace( getTimer() - startT ) ) ; // 132

Les propriétés virtuelles sont encore plus rapides!

Au final, je pense que l'AS3 est vraiment orienté et optimisé pour la POO et qu'il faut le pratiquer comme tel.

Vivement l'AS4 (s'il arrive un jour!)

A++ NairuS