операторы условий, включающие координаты, Adobe Flash - PullRequest
0 голосов
/ 05 мая 2011

В последнее время у меня не было проблем с Flash CS3. Мне действительно нужна помощь в очистке скриптов.

Я пытался создать код в ActionScript, который установит функцию на true, если объект будет перемещен в определенную часть экрана. Смущает то, что правило применяется к тем случаям, когда оно находится между конкретными четырьмя координатами (в данном случае 165 и 231 в качестве координат X и 295 и 330 в качестве координат y; «honey» - это имя экземпляра символа).

Когда я в последний раз обращался за помощью, мне давали этот код:

bool IsBetweenInclusive(int value, int lower, int upper)
{
    return value >= lower 
        && value <= upper;
}

Однако, когда я попытался превратить его в оператор условия, это не сработало. Мне действительно нужна помощь, и я буду очень признателен за помощь.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

Вы можете использовать прямоугольник , у него уже есть метод для этого. Предполагая, что у вас есть верхняя левая точка x1,y1 и нижняя правая точка x2,y2 и точка x,y, которую вы хотите проверить:

var area = new Rectangle (x1, y1, x2-x1, y2-y1);

if( area.contains(x,y) ) { /* ... */ }

Существует также containsRect , если вам нужно проверить, находится ли объект полностью в данной области.

0 голосов
/ 05 декабря 2011
    /**
     * Whether a point is within a rectangular bounds.
     *
     * @param x         Point x-coordinate to be tested.
     * @param y         Point y-coordinate to be tested.
     * @param bounds    Rectangle boundary to be tested against.
     * @return          True if point is within bounds.
     */
    public static function withinBounds(x:Number, y:Number, bounds:Rectangle):Boolean
    {
        if ((x > bounds.x) &&
            (x < bounds.x + bounds.width) &&
            (y > bounds.y) &&
            (y < bounds.y + bounds.height))
            return true;

        return false;
    }
...