Получение Int в другом фрейме ActionScript 3.0 - PullRequest
0 голосов
/ 14 декабря 2011

Я сейчас работаю над игрой в казино (для моей школы), но у меня возникла проблема:

var a:int //this part is in frame 1

a = 10000
money.text = ""+a //this part is working


//this part is in another frame
lost_BTN.addEventListener(MouseEvent.CLICK, lost)

function lost (e:MouseEvent)
{
cash.text = ""+a -=50 //*1 (please see below)
}
*1) Scene 1, Layer 'Layer 1', Frame 6, Line 36  1050: Cannot assign to a non-reference value.

*1) Scene 1, Layer 'Layer 1', Frame 6, Line 36  1067: Implicit coercion of a value of type String to an unrelated type Number.

*1) Scene 1, Layer 'Layer 1', Frame 6, Line 36  1067: Implicit coercion of a value of type Number to an unrelated type String.

Кажется, я не могу получить информацию из 'a' в другом кадре.

Ответы [ 2 ]

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

Как упоминает @rvmook в своем ответе и @SeRPRo в комментарии. Ваша ошибка о приоритет оператора . То есть порядок, в котором происходят операции. В вашем примере добавление пустой строки и значения a происходит до предполагаемого назначения вычитания 50 из a. В результате вы пытаетесь вычесть целое число 50 из строки, содержащей строковое представление значения a.

Небольшая доработка вашего кода сделает его работоспособным либо со строкой cast , как подсказывает @rvmook, либо сначала выполнив вычисления, а затем назначив строковое представление.

function lost (e:MouseEvent)
{
    a -= 50;
    lost.text = a.toString();
}

Помните, что компьютеры глупы, и им не нужно точно знать, что делать.

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

Это потому, что вы делаете некоторые вычисления с a в кадре 6, где вы хотите разместить текст. Вы должны сказать Flash, что a -= 50 следует интерпретировать как String, и все будет хорошо. Если вы измените свой код на это, он будет работать:

function lost (e:MouseEvent)
{
    cash.text = String(a -=50);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...