Demonstration for the file import library that I have made. This library supports raster image files, SVG files, and audio files. It also supports text and binary files but every file is technically a binary file so support for binary is kind of implied. If you want to get the library, see inside this project and click on File > Export Blocks. The blocks also include help notes. MINOR UPDATE 2/19/2021: - I changed the code of the read file block a bit. Reading a file in JavaScript is an asynchronous operation so to make it synchronous for Snap!, I made it use Snap! variables with JavaScript, and pausing the process. I redid it so it still pauses the process, but now the JavaScript function returns a JavaScript function returning the new value which the Snap! code will read once the process is once again resumed. That was lengthy.data:image/png;base64,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data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCCOpens the file select dialog. When the user has submitted at least one file, it will run the ring with the file list as the input. To make it accept only a certain file extension, write the file extension, including the dot, or the MIME type (e.g. ".txt", "text/plain") in the text field. You can make it accept multiple file extension types by adding more text fields. Remove all input fields to make it accept all files.
Gets an attribute of a file. The last modified attribute reports the time the file was last modified in milliseconds since the Unix epoch (Jan 1, 1970, 12:00 AM)
namename size type last modifiedsizetypelast modified
Reads a file as a certain type. The binary string type is the file's actual contents in binary (I think). So can someone please make a MIDI player with my library.
texttext binary string costume vector costume sound
textimage audio video text SVG MIDI anyanyMIDISVG1type/
any