callMethod(callArgs)

should be
 
  callMethod.apply(null, callArgs)
 
instead I believe. Otherwise it would just pass the rest Array to the
function and not the single parameters contained within the rest Array.
 
Dirk.


________________________________

        From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael Schmalle
        Sent: Wednesday, February 14, 2007 4:32 PM
        To: [email protected]
        Subject: Re: [flexcoders] Continuations support? or smart
sleep()?
        
        
        Hi,
        
        yeah he timer class does it but;
        
        function example {
        trace("before");
        sleep(2000);
        trace("after 2 seconds");
        }
        
        Will not work. The Flash player exectues in order of the stack.
So, you can't have a sleep method inside a method block and halt the
method block.
        
        Although something like this might be what you looking for. 
        
        function example {
        trace("before");
        sleep(2000, exectueAfter, "something", 1);
        }
        
        function sleep(milli:Number, func:Function, ...rest):void
        {
        callMethod = func
        callArgs = rest
        ... set up timer and handlers, run timer
        }
        
        function timer_timerEndHandler(event:TimerEvent):void
        {
           callMethod(callArgs)
        }
        
        function exectueAfter(arg1, arg2)
        {
        trace("after 2 seconds");
        }
        
        This is about as close as you will get to a 'sleep' method.
        
        Peace, Mike
        
        
        On 2/14/07, Igor Costa <[EMAIL PROTECTED]> wrote: 

                Conley
                
                You could check out the Timer Class that can do this for
you exactly in the way you need it.

                
                
                
                On 2/14/07, j.conley < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote: 

                        
                        I was wondering if there are any plans to
consider continuation
                        support in flash/flex? ...predominantly to
support the concept of a
                        smarter "Thread.sleep(n)" without blocking or
disrupting the
                        single-threaded execution model.
                        
                        for context, here is a "sleep" pseudo-example
using the continuations
                        concept:
                        
                        function example {
                        trace("before");
                        sleep(2000);
                        trace("after 2 seconds");
                        }
                        
                        function sleep(sleep_millis:int) {
                        var savepoint:Continuation =
Continuations.new(); // creates a
                        holder that will capture the execution stack
state at the next suspend()
                        setTimeout(function(event:Event):void {
                        Continuations.resume(savepoint); // resumes the
                        saved execution stack
                        },sleep_millis);
                        Continuations.suspend(savepoint);
                        }
                        
                        For my purposes, I am writing a general-purpose
tool for developers
                        that would locate one or more components in the
UI hierarchy (by some
                        criteria), then return those components so they
could interact with them.
                        In searching for said components, I have come
across embedded
                        SWFLoaders which are not yet finished
loading/reloading, and sleep()
                        (via continuations) would allow checking it's
state periodically and
                        not disrupt the execution stack, callers code or
block the overall
                        application.
                        
                        There are several other cases where this would
be useful, but I just
                        wanted to start a dialog on it.
                        
                        

                        




                -- 
                ----------------------------
                Igor Costa
                www.igorcosta.org
                www.igorcosta.com
                skype: igorpcosta 

                

                




        -- 
        Teoti Graphix
        http://www.teotigraphix.com
        
        Blog - Flex2Components
        http://www.flex2components.com 
        
        You can find more by solving the problem then by 'asking the
question'.  

Reply via email to