Я просматривал код для Flash-игры ( ссылка ).Однако у меня возникают проблемы с пониманием того, как работают некоторые из этих функций, особенно из-за того, что у некоторых из них есть определения функций, которые, я думаю, не смогут пройти мимо компилятора.
Ниже приведен код из TodCommon.asкажется, что конфликтует с самим собой (или, по крайней мере, использует плохие соглашения об именах).
private static var gFlashingColor:Color = new Color();
final public static function ClampFloat(ClampInt:Number, ClampInt:Number, ClampInt:Number) : Number
{
if(ClampInt <= ClampInt)
{
return ClampInt;
}
if(ClampInt >= ClampInt)
{
return ClampInt;
}
return ClampInt;
}
final public static function ClampInt(gFlashingColor:int, gFlashingColor:int, gFlashingColor:int) : int
{
if(gFlashingColor <= gFlashingColor)
{
return gFlashingColor;
}
if(gFlashingColor >= gFlashingColor)
{
return gFlashingColor;
}
return gFlashingColor;
}
Также в коде представлен самый странный синтаксис для цикла for-each, который я когда-либо видел (этот пример)также содержит имя пакета в качестве имени параметра)
public function CountPlantByType(com.popcap.flash.framework.resources.fonts:int) : int
{
var _loc_3:CPlant = null;
var _loc_2:int = 0;
var _loc_4:int = 0;
var _loc_5:* = this.mPlants;
while(<to complete>)
{
_loc_3 = __nextvalue;
if(_loc_3.mSeedType != com.popcap.flash.framework.resources.fonts)
{
break;
}
_loc_2++;
}
return _loc_2;
}
Это всего лишь несколько примеров того, что, на мой взгляд, выглядит странно и у меня проблемы с пониманием.Но все эти функции работают и широко используются в коде.Может кто-нибудь объяснить, как работают функции ClampFloat и ClampInt, или почему в качестве параметра допустимо использовать имя пакета?Спасибо