ActionScript - trace(). Поведение функции верхнего уровня

Когда я отслеживаю переменную в Flash Player Debug, я получаю странное поведение. Давайте предположим, что у нас есть шаблон типа "x: y". "х" и "у" являются целочисленными переменными. Если мы проследим это выражение с

trace("x:y");

поведение

1) если х <10

"x" переменная и ":" будут опущены, и будет напечатан только "y"

2) если х>= 10

все работает как положено. "х: у" распечатан.

Вопросы:

  1. Почему так происходит?
  2. Является ли двоеточие особым символом в ActionScript?
  3. Можно ли избежать такого поведения и распечатать, например, "1:1"?

Воспроизвести:

// following looks wrong
trace("1:1");  // 1
trace("2:1");  // 1
//but the next ones - look correct
trace("10:1"); // 10:1
trace("11:1"); // 11:1

Заранее спасибо.

2 ответа

Решение

Тестирование это с mxmlc:

// following looks wrong
trace("1:1");  // 1
trace("2:1");  // 1
//but the next ones - look correct
trace("10:1"); // 10:1
trace("11:1"); // 11:1

Производит эти результаты для меня:

1:1
2:1
10:1
11:1

Что-нибудь еще, что Вы можете отправить, чтобы помочь сузить проблему?

Переменные не должны быть в кавычках. Правильный способ отследить это будет:

trace(x + ":" + y);

Редактировать: я не уверен, почему он делает это для вас, но я не получаю такого поведения при трассировке внутри Flash Pro...

Другие вопросы по тегам