#flash #actionscript-3 #if-statement #coordinates #conditional-statements
#flash #actionscript-3 #if-инструкция #координаты #условные операторы
Вопрос:
В последнее время у меня не было конца проблемам с Flash CS3. Мне действительно нужна помощь в очистке сценариев.
Я пытался создать код в actionscript, который установит функцию в true
, если объект перемещается в определенную часть экрана. Запутанная вещь заключается в том, что правило применяется, когда оно находится между определенными четырьмя координатами (в данном случае, 165 и 231 в качестве координат X и 295 и 330 в качестве координат y; «honey» — это имя экземпляра символа).
В последний раз, когда я просил о помощи, мне дали этот код:
bool IsBetweenInclusive(int value, int lower, int upper)
{
return value >= lower
amp;amp; value <= upper;
}
Однако, когда я попытался превратить это в инструкцию условия, это не сработало. Мне действительно нужна помощь, и я буду очень признателен за помощь.
Комментарии:
1. Этот код не является ActionScript.
Ответ №1:
/**
* 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) amp;amp;
(x < bounds.x bounds.width) amp;amp;
(y > bounds.y) amp;amp;
(y < bounds.y bounds.height))
return true;
return false;
}
Ответ №2:
Вы можете использовать прямоугольник, для этого уже есть метод. Предположим, у вас есть верхняя левая точка x1,y1
и нижняя правая точка x2,y2
, а также точка, x,y
которую вы хотите проверить:
var area = new Rectangle (x1, y1, x2-x1, y2-y1);
if( area.contains(x,y) ) { /* ... */ }
Также есть containsRect, если вам нужно проверить, полностью ли объект находится в заданной области.