2013-11-22 2 views
0

Я пытаюсь создать цикл, который не приведет к сбою моего флеш-приложения. Я хочу, чтобы переменная CN переходила от 1 до 10, а затем 10 превращалась в 1 (1,2,3,4,5,6,7,8,9,10,1 ....). Это то, что у меня есть до сих пор ...Как сделать переменную петлю в actionscript 3

var CN:int = 1; 
for(int CN = 1; CN<100; CN++); 

NumberCounter.text = String(CN); 

Пожалуйста, помогите. Я не получаю это вообще :(Я начинающий программист так много вещей, которые я не буду делать много смысла

+0

Что вы имеете в виду под "превращается в 1? Вы имеете в виду начало или просто положить 1 в конце? –

+0

Все начинается. – octopus58

+0

У вас есть максимальное количество раз, когда вам нужно, чтобы начать все заново? Если нет, приложение просто попадет в бесконечный цикл. Возможно, если вы дадите несколько подробностей о цели этого, мы можем рекомендовать более подходящий подход к проблеме. –

ответ

0
var Numberofwins = 0; 

CN.addEventListener(Event.ENTER_FRAME, checkFrame); 

function checkFrame(event:Event):void{ 
if(CN.currentFrame == 11){ 
    CN.gotoAndPlay(1); 
    } 
} 

    import flash.events.MouseEvent; 

Submit.addEventListener(MouseEvent.CLICK, CheckIf8); 

function CheckIf8(event:MouseEvent):void 
{ 
    if(CN.currentFrame == 8) 
    { 
      Numberofwins++; 
     trace (Numberofwins); 
     Scorebox.text = String(Numberofwins); 
    } 



    else 
     { 
    gotoAndStop("Loose1"); 
     } 
} 

Это было мое решение

0

Для бесконечного цикла:.

while(true){ 

    for(var CN:int=1; CN <= 10; CN ++) NumberCounter.text = String(CN); 
} 

сделать это 10 раз, что выглядит как ваш код намекая на:

for (int x= 0; x< 10; x++){ 

for(var CN:int=1; CN <= 10; CN ++) NumberCounter.text = String(CN); 
} 
+0

ya но как CN превратится в 1, когда он достигнет 10 в пример? – octopus58

+0

Поскольку true никогда не может быть ложным, оператор while будет повторяться до конца времени (или до закрытия приложения). Каждый раз, когда он повторяется, он снова запускает для 1-10. –

+0

У меня появились некоторые ошибки. Они: ожидают точку с запятой до CN (строка 3) и ожидают идентификацию перед правым правым (строка 4). Мой код: var CN: int = 1; while (true) { \t для (int CN = 1; CN <= 10; CN ++) } NumberCounter.text = String (CN); – octopus58

1

Ваш вопрос немного неясно, вы пытаетесь перейти от 1 до 10, то от 10 до 1 раз (20 шагов), или туда и обратно. от 1 до 10 в 100 ступенях?

Если это первое, вы можете попробовать что-то вроде этого:

for(var i:int = 0, j:int = 0; i < 20; i++){ 
    if(i < 10) j++; 
    else  j--; 
    trace(j);//put this in your text field 
} 

, если это вторая:

for(var i:int = 0; j:int = 1, k:int = 0; i < 100; i++){ 
    if(i % 10 == 0) j *= -1; //every 10 steps flip (multiply by -1) the increment direction(increase/decrease) 
    k += j;//increment k based on j which will either increase or decrease 
    trace(k);//use this value 
} 

Однако текстовое поле будет обновляться сразу. Если вы хотите, чтобы отобразить это изменение во времени вы можете использовать событие ENTER_FRAME для увеличения (а не для цикла) или твин двигатель анимировать значение

+0

В порядке я решил сделать что-то другое вместо переменной петли. Но это отличный совет для следующего раза: D – octopus58

0

Попробуйте

если (CN> 1) {

var CN: int = 1; для (int CN = 1; CN < 10; CN ++);

NumberCounter.text = String (CN); } еще { }

Смежные вопросы