ActionScript - trace(). Поведение функции верхнего уровня
Когда я отслеживаю переменную в Flash Player Debug, я получаю странное поведение. Давайте предположим, что у нас есть шаблон типа "x: y". "х" и "у" являются целочисленными переменными. Если мы проследим это выражение с
trace("x:y");
поведение
1) если х <10
"x" переменная и ":" будут опущены, и будет напечатан только "y"
2) если х>= 10
все работает как положено. "х: у" распечатан.
Вопросы:
- Почему так происходит?
- Является ли двоеточие особым символом в ActionScript?
- Можно ли избежать такого поведения и распечатать, например, "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...