错误1023使用as3-signals-v0.9-BETA进行堆栈溢出

时间:2013-04-18 08:29:05

标签: event-handling signals flash robotlegs

我在简单的幻灯片应用程序中使用as3-signals-v0.9-BETA。在我的信号处理程序中,我根据某些条件再次发送相同的信号。

应用程序在信号调度方法上几个小时后抛出异常。下面是堆栈跟踪:

错误:

Error #1023: Stack overflow occurred.
     at com.chetansachdev.components::SlideDeck/onNextSlidePleaseEvent()[D:\cb-trunk\Solutions\Components\Slidelib\src\com\chetansachdev\components\SlideDeck.as:75]
     at org.osflash.signals::Slot/execute()[C:\Users\Robert\Documents\Flash\OSFlash\signals\as3-signals\src\org\osflash\signals\Slot.as:87]
     at org.osflash.signals::OnceSignal/dispatch()[C:\Users\Robert\Documents\Flash\OSFlash\signals\as3-signals\src\org\osflash\signals\OnceSignal.as:125]
     at com.chetansachdev.components::SlideDeck/onNextSlidePleaseEvent()[D:\cb-trunk\Solutions\Components\Slidelib\src\com\chetansachdev\components\SlideDeck.as:89]
     at org.osflash.signals::Slot/execute()[C:\Users\Robert\Documents\Flash\OSFlash\signals\as3-signals\src\org\osflash\signals\Slot.as:87]
     at org.osflash.signals::OnceSignal/dispatch()[C:\Users\Robert\Documents\Flash\OSFlash\signals\as3-signals\src\org\osflash\signals\OnceSignal.as:125]
     ...
     ...

方法:

mysignal.add(mySignalHandler);

function mySignalHandler():void
{
    if(condition)
    {
       // do something here..
    }
    else
    {
        mysignal.dispatch();
    }
}

有人可以指出我,出了什么问题。当我从信号处理程序调度时,是否创建了堆栈? (我不直接调用方法,我正在发送信号)。

1 个答案:

答案 0 :(得分:0)

这是一个无限循环。这就像写这个:

function inifityAndBeyond(){
    infinityAndBeyond();
}

换句话说,在信号处理程序中调度相同的信号是没有意义的。