How do I load a MovieMorph from a .movie file?

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

How do I load a MovieMorph from a .movie file?

Hi Everyone,

I'm trying to improve the MovieMorph tutorial to update it to Squeak 4.2.  I'm stuck on being able to load my .movie file into a new MovieMorph.

This is the code I have used to create the .movie file from my 3 bitmaps (frame_001.bmp, ...):

| frameCounter frameCount frame32Bitmap movieFile animationFrame |
movieFile := FileStream newFileNamed: ''.
movieFile binary.
animationFrame := Form extent: 100@100 depth: 32.
#(22 100 100 32 3 100000) , (7 to: 32)
        do: [:i | movieFile nextInt32Put: i].
1 to: 3 do: [
        :i | frameCounter := i printString. frameCount := frameCounter padded: #left to: 3 with: $0.
        frame32Bitmap := Form fromFileNamed: 'frame_' , frameCount , '.bmp'.
        frame32Bitmap displayOn: animationFrame at: 0@0.  "Convert down to 16 bits"
        animationFrame display; writeOnMovie: movieFile].
        movieFile close.

I stole it directly from the current Recipe (on the Squeak wiki) for creating a Squeak movie.  It runs and creates the file from my bmp frame images. But I can't figure out how to load the .movie file into the MovieMorph.

Does anyone know the way to do this?  Or do I have to load each frame manually? I suspect the clue is in the Form>>writeOnMovie: method but haven't had any luck figuring it out. I know I have to load in the bits of the bitmap somehow ...

I was expecting to be able to write something like this (I know, loadMovie: doesn't exist - it just seems like what one would expect to see):

m := MovieMorph new.
m loadMovie: (FileStream fileNamed: '').
m openInWorld