Привет всем, я тысячакратно извиняюсь за тупой вопрос.
Ребят скажите как понять приведение типа такого характера:
Код AS3:
p = pool.getObject() as Point;
Дабы больше разъяснить, выкладываю весь код с одного сайта (возможно некоторые побывали там )):
Код AS3:
public final class ObjectPool
{
private var pool:Vector.<Object>;
private var counter:uint;
private var className:Class;
public function ObjectPool(className:Class, length:uint = 1)
{
this.className = className;
pool = new Vector.<Object>(length);
var i:uint = counter = length;
//создадим начальный набор объектов
while( --i > -1 )
pool[i] = new className();
}
public function getObject():Object
{
if ( counter > 0 )
return pool[ --counter ];
// если объекты закончились
// создаю объект и увеличивая длину массива
pool.unshift( new className() );
return pool[0];
}
public function releaseObject(value:Object):void
{
pool[ counter++ ] = value;
}
// необязательный метод для тестирования
public function toString():String
{
return "Pool of " + className + " count = " + counter + "/" + pool.length;
}
}
Здесь автор использует объект с непонятным мне приведением типа:
Код AS3:
var pool:ObjectPool = new ObjectPool(Point, 20);
trace(pool);
trace("---------");
for (var i:int = 0, p:Point; i < 40; i++)
{
p = pool.getObject() as Point; // как здесь это работает ???
p.x = Math.random() * 400;
if(p.x > 300)
pool.releaseObject(p);
trace( pool.toString() );
}
Если я непонятно изложил свою проблему, попробую написать так:
ОбъектНекоегоКласса.какой-тоМетод () as Какой-тоТип; // вот как это работает ?
или же:
var _bit_map:Bitmap = _loader.content as Bitmap; // ?