generalized the #:steps argument to play so different phases on an animation can take different amounts of time
This commit is contained in:
parent
67e15ee993
commit
2faca724e3
|
@ -66,7 +66,9 @@ slide that would be registered with a timeout is instead skipped.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(play-n [gen* (() (listof (real-in 0.0 1.0)) . ->* . pict?)]
|
@defproc[(play-n [gen* (() (listof (real-in 0.0 1.0)) . ->* . pict?)]
|
||||||
[#:steps steps exact-positive-integer? 10]
|
[#:steps steps (or/c exact-positive-integer?
|
||||||
|
(improper-listof exact-positive-integer?))
|
||||||
|
10]
|
||||||
[#:delay delay-secs real? 0.05]
|
[#:delay delay-secs real? 0.05]
|
||||||
[#:skip-first? skip-first? any/c #f]
|
[#:skip-first? skip-first? any/c #f]
|
||||||
[#:skip-last? skip-last? any/c #f]
|
[#:skip-last? skip-last? any/c #f]
|
||||||
|
@ -110,7 +112,15 @@ If @racket[skip-first?] is @racket[#t], then the very first slide of
|
||||||
the sequence is skipped. Similarly, if @racket[skip-last?] is
|
the sequence is skipped. Similarly, if @racket[skip-last?] is
|
||||||
@racket[#t], then the last slide of the sequence is skipped.
|
@racket[#t], then the last slide of the sequence is skipped.
|
||||||
|
|
||||||
The @racket[steps], @racket[delay-msecs], @racket[title],
|
The @racket[steps] argument controls how many steps happen in each
|
||||||
|
phase on the animation. If it is a number, then that number is used for
|
||||||
|
each phase. If it is a pair of two numbers, then the first number is used
|
||||||
|
for the first phase, and the second number is used for the rest of the
|
||||||
|
phases. Similarly, if it is @racket[(cons num_1 (cons num_2 num_3))],
|
||||||
|
@racket[num_1] and @racket[num_2] are used for the first two phases
|
||||||
|
and @racket[num_3] is used for the rest.
|
||||||
|
|
||||||
|
The @racket[delay-msecs], @racket[title],
|
||||||
@racket[name], and @racket[layout] arguments are passed on to
|
@racket[name], and @racket[layout] arguments are passed on to
|
||||||
@racket[play] for each of the @math{n} segments of animation.}
|
@racket[play] for each of the @math{n} segments of animation.}
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,8 @@
|
||||||
(let ([n (procedure-arity mid)])
|
(let ([n (procedure-arity mid)])
|
||||||
(let loop ([post (vector->list (make-vector n))]
|
(let loop ([post (vector->list (make-vector n))]
|
||||||
[pre null]
|
[pre null]
|
||||||
[skip? skip-first?])
|
[skip? skip-first?]
|
||||||
|
[Ns N])
|
||||||
(if (null? post)
|
(if (null? post)
|
||||||
(unless skip-last?
|
(unless skip-last?
|
||||||
(slide #:title (if (procedure? title) (apply title pre) title)
|
(slide #:title (if (procedure? title) (apply title pre) title)
|
||||||
|
@ -89,12 +90,12 @@
|
||||||
(apply name (append pre (list n) (cdr post))))
|
(apply name (append pre (list n) (cdr post))))
|
||||||
name)
|
name)
|
||||||
#:layout layout
|
#:layout layout
|
||||||
#:steps N
|
#:steps (if (pair? Ns) (car Ns) Ns)
|
||||||
#:delay secs
|
#:delay secs
|
||||||
#:skip-first? skip?
|
#:skip-first? skip?
|
||||||
(lambda (n)
|
(lambda (n)
|
||||||
(apply mid (append pre (list n) (cdr post)))))
|
(apply mid (append pre (list n) (cdr post)))))
|
||||||
(loop (cdr post) (cons 1.0 pre) #f))))))
|
(loop (cdr post) (cons 1.0 pre) #f (if (pair? Ns) (cdr Ns) Ns)))))))
|
||||||
|
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user