public boolean frame(long dt)
    {
        // allow empty tweens?
        TweenManager.allowEmptyTweens(allow_empty.getState());

        // possibly slow down and run a frame
        if(slowdown.getState())
            dt = Math.max(1, dt / 4);
        boolean ret = super.frame(dt);

        // nothing to tween? move some stuff
        if(!ret) {
            forward = !forward;
            int x = forward ? canvas.getWidth() - 80 - 32 : 132;
            for(int i = 0; i < items.length; i++) {
                items[i].setPosition(x, 12 + i * 40);
            }

            // change the speed
            if(!forward) {
                final float t = 0.5f + speed * 0.5f;
                speed = (speed + 1) & 7;
                setTitle("[Tweeny test] time=" + t + (slowdown.getState() ? " (slowed down)" : "") );

                for(int i = 0; i < items.length; i++)
                    items[i].setPositionDuration(t);
            }
        }

        return ret;
    }