Morph saveOnFile
Last updated at 5:09 am UTC on 4 February 2019
The instance method #saveOnFile is implemented in class Morphic and allows any instance of Morph or a subclass to be saved in a file together with its submorphs.
The file extension is '.morph'.
Such a file may be dropped onto the desktop of a target image and will be reloaded there.
Implementation
The method uses a SmartRefStream to do the serialization.
First the method calls for all morphs
prepareToBeSaved
After having obtained the file name the following method is called:
Object
saveOnFileNamed: filenameString
"Save myself on a SmartRefStream file. Writes out the version and class structure.
The file is fileIn-able. UniClasses will be filed out."
| fileStream |
fileStream := FileStream newFileNamed: filenameString asFileName.
fileStream fileOutClass: nil andObject: self. "Puts UniClass definitions out anyway, and closes the stream."
Example
http://forum.world.st/Test-BackToTheFuture-morph-saved-from-Squeak-2-5-dropped-onto-a-desktop-of-a-Squeak6-0a-image-tt4940530.html
Loading a morph
Morph class fromFileName:
How to save and load a Morph
Note
If there are problems with loading the save morph file into an image with a higher update number it might be necessary to update a copy of an image first before saving the morph
See How to update a Squeak 5.1 image to the most recent trunk version