2013-02-20 4 views
0

Создайте кнопку и укажите имя «b». Создайте динамический текст и укажите имя «тампил». Запустите его ... Нажмите кнопку b, чтобы запустить таймер, и нажмите еще раз, чтобы остановить (но ошибка).Невозможно остановить этот таймер

Следующий сценарий - это часть моего проекта, которую я модифицировал. Мой вопрос: как остановить таймер?

import flash.events.MouseEvent; 
var xx:Number = 1; 
var waktux:Timer; 
var i1:Number = 1; 
var ab:Number = 1; 
var lantaii:String = "lg"; 
b.addEventListener(MouseEvent.CLICK, stopp); 
function stopp(e:MouseEvent) 
{ 
    waktu(0,0,ab); 
    if (ab==1) 
    { 
     ab = 0; 
    } 
    else 
    { 
     ab = 1; 
    } 
} 
function waktu(e, d, cx) 
{ 
    var waktux:Timer; 
    var waktuy:Timer; 
    function sayHello(f:TimerEvent):void 
    { 
     tampil.text = String(e); 
     e = e + 1; 
    } 
    function sayHellow(e:TimerEvent):void 
    { 
     tampil.text = String(d); 
     d = d + 1; 
    } 
    function sayHello2(f:TimerEvent):void 
    { 
     tampil.text = String(e); 
     e = e + 1; 
    } 
    if (cx==1) 
    { 
     if (lantaii == "lg") 
     { 
      naek(); 
     } 
     else 
     { 
      waktuy = new Timer(400,10); 
      waktuy.addEventListener(TimerEvent.TIMER, sayHellow); 
      waktuy.start(); 
      waktuy.addEventListener(TimerEvent.TIMER_COMPLETE, naek2); 
     } 
     function naek() 
     { 
      waktux = new Timer(400,10); 
      waktux.addEventListener(TimerEvent.TIMER, sayHello); 
      waktux.start(); 
     } 
     function naek2(s:TimerEvent):void 
     { 
      waktux = new Timer(400,10); 
      waktux.addEventListener(TimerEvent.TIMER, sayHello2); 
      waktux.start(); 
     } 
    } 
    else 
    { 
     trace("nih masuk"); 
     waktux.stop(); 
     waktux.reset(); 
     waktuy.reset(); 
     waktux.removeEventListener(TimerEvent.TIMER, sayHello); 
     waktux.removeEventListener(TimerEvent.TIMER, sayHello2); 
     waktuy.removeEventListener(TimerEvent.TIMER, sayHellow); 
     waktuy.removeEventListener(TimerEvent.TIMER_COMPLETE, naek2); 
    } 
} 

ответ

1

Я думаю, что вы переопределяете waktux один в глобальном масштабе и другие в функции waktu. удалить одну из этих линий

import flash.events.MouseEvent; 
var xx:Number = 1; 
var waktux:Timer; //<--------------------------- HERE 
var i1:Number = 1; 
var ab:Number = 1; 
var lantaii:String = "lg"; 

function waktu(e, d, cx) 
{ 
    var waktux:Timer; //<--------------------------- HERE 
    var waktuy:Timer; 
    function sayHello(f:TimerEvent):void 
    { 
     tampil.text = String(e); 
     e = e + 1; 
    } 
    function sayHellow(e:TimerEvent):void 
    { 
     tampil.text = String(d); 
     d = d + 1; 
    } 
    function sayHello2(f:TimerEvent):void 
    { 
     tampil.text = String(e); 
     e = e + 1; 
    } 
    if (cx==1) 
    { 
     if (lantaii == "lg") 
     { 
      naek(); 
     } 
     else 
     { 
      waktuy = new Timer(400,10); 
      waktuy.addEventListener(TimerEvent.TIMER, sayHellow); 
      waktuy.start(); 
      waktuy.addEventListener(TimerEvent.TIMER_COMPLETE, naek2); 
     } 
     function naek() 
     { 
      waktux = new Timer(400,10); 
      waktux.addEventListener(TimerEvent.TIMER, sayHello); 
      waktux.start(); 
     } 
     function naek2(s:TimerEvent):void 
     { 
      waktux = new Timer(400,10); 
      waktux.addEventListener(TimerEvent.TIMER, sayHello2); 
      waktux.start(); 
     } 
    } 
    else 
    { 
     trace("nih masuk"); 
     waktux.stop(); 
     waktux.reset(); 
     waktuy.reset(); 
     waktux.removeEventListener(TimerEvent.TIMER, sayHello); 
     waktux.removeEventListener(TimerEvent.TIMER, sayHello2); 
     waktuy.removeEventListener(TimerEvent.TIMER, sayHellow); 
     waktuy.removeEventListener(TimerEvent.TIMER_COMPLETE, naek2); 
    } 
} 

и просто для удовольствия

function stopp(e:MouseEvent) 
{ 
    waktu(0,0,ab); 
    ab = !ab; 
} 
Смежные вопросы