Трассировка переменных в AS3 не работает - PullRequest
0 голосов
/ 22 января 2011
var a:Number;
var b:Number;

a + b = 17;

trace ("A: "a"       B: "b);

Почему это не работает? Есть ли что-то в отслеживании нескольких фрагментов информации в одном и том же операторе трассировки в AS3?

Ответы [ 3 ]

2 голосов
/ 22 января 2011

В ActionScript 3 метод трассировки может принимать множество параметров. Но они должны быть разделены запятой, как и любой вызов метода. Таким образом, вы можете использовать:

trace ("A:", a, "B:", b);
2 голосов
/ 23 января 2011

У вас есть две проблемы в вашем коде.То, к чему относятся другие ответы - это проблема трассировки.Аргументом вызова trace () является любое количество строк, разделенных запятыми.Тем не менее, очень часто просто поставить одну и соединить части строки со знаком +.

trace("A: "+a+", B: "+b);

Реальная проблема в вашем коде, однако, составляет a + b = 17, как в письменной, так и в мышлении.Вы не можете рассчитать числовой результат уравнения, если у вас есть более одной неопределенной переменной там.A + B = C разрешима в коде, только если вы знаете две из трех переменных.Если вы хотите написать что-то в меру полезное, попробуйте

var a:Number = 5;
var b:Number;

b = 12 - a;

trace("A: "+a+", B: "+b);

Помимо математического мышления, в коде вы не пишете математические уравнения, вы пишете выражения присваивания.Какое бы выражение ни находилось справа от знака =, оно будет присвоено переменной слева от знака =.Никогда не получится присвоить одно выражение двум переменным с помощью оператора (+, *, -, /, % и т. Д.) И надеяться, что математика сама по себе волшебным образом разрешится.a + b = something никогда не сработает, something = a + b может.Кроме того, попытка присвоить что-либо константе и надежда на то, что она разрешится сама, например 12 = a + b, также не будет работать.

Приветствия.

2 голосов
/ 22 января 2011

Вы должны использовать символ плюс (+) для объединения строк.

trace ("A: " + a + "B: " + b);
...