Как работают функции с несколькими параметрами с одинаковыми именами? - PullRequest
0 голосов
/ 23 марта 2019

Я просматривал код для 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, или почему в качестве параметра допустимо использовать имя пакета?Спасибо

1 Ответ

0 голосов
/ 23 марта 2019

Решено. Оказывается, программа, которую я использовал для извлечения этих файлов из SWF, также повредила их в процессе. Использование JPEXS Free Flash Decompiler вместо ActionScriptExtractor исправило синтаксис кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...