Возвращает целочисленное значение AS3.0

Я пытаюсь вернуть значение int из actionscript внутри символа.

Это код внутри символа/мувиклипа.

function flytt():void{
   var flyttInMb:int=Math.random() * 8;
   if(flyttInMb==0){
      x=243,30;
      y=171,65;
   }
}

Это код, который я пробовал для возврата flyttInMb в сценарий действий, который является игрой, а не внутри одного из символов, и что я получаю, так это: возвращаемое значение должно быть неопределенным. Как я могу вернуть flyttInMb из символа в мой скрипт действия?

Вот как я пытаюсь вызвать flyttInK и flyttInMb:

if(flyttInK==flyttInMb){
   Kone.flytt();
   Baby.flytt();
}

Дело в том, что я хочу сохранить значение flyttInMb, чтобы я мог перемещать Коне и ребенка, если их количество одинаково, чтобы ни одна родинка никогда не появлялась на одном и том же месте.


person Kasper    schedule 05.02.2011    source источник
comment
Привет, не могли бы вы отформатировать свой код, пожалуйста? Для этого используйте кнопки {}. Спасибо.   -  person robertp    schedule 05.02.2011


Ответы (2)


попробуйте это, чтобы получить возвращаемое значение из метода:

function returnValue():uint
{
  return Math.round(Math.random()*8);
};

Роб

person robertp    schedule 05.02.2011

Извините за добавление нового ответа, но мне кажется, что так лучше.

Чтобы иметь возможность вернуть что-либо из метода, вы должны фактически установить это в объявлении метода и должны вернуть значение в методе. Смотри ниже:

В символах фрагмента ролика

function flytt():uint
{
   var flyttInMb:uint = Math.round(Math.random() * 8);

   if(flyttInMb == 0)
   {
      x=243.30; //Use full stop instead if comma!
      y=171.65; //Use full stop instead if comma!
   }

   return flyttInMb;
};

В объявлении метода я говорю, что верну значение uint, а последняя строка метода возвращает сгенерированное случайное число.

В основном скрипте

Честно говоря, я не понимаю, что вы пытаетесь сделать с этим:

if(flyttInK==flyttInMb){
   Kone.flytt();
   Baby.flytt();
}
  • что такое flyttInk?
  • что такое flyttInMb - оно имеет то же имя, что и сгенерированное значение в скрипте символа.
  • Kone.flytt(); и Baby.flytt(); вызовы кажутся статическими вызовами методов класса, которые ничего не возвращают в этом контексте. Попробуйте вызвать методы фактически созданных элементов, которые будут выглядеть примерно так:

var kone:Kone = новый Kone(); ... var returnValueOfKoneInstance:uint = kone.flytt();

Я надеюсь, что вы станете ближе с этим,

Роб

person robertp    schedule 05.02.2011