Requirements: Macromedia Flash plugin installed.
![]()
A detailed description of custom parameters (they are used with a filename to help customize SWF to image conversion using SWF To image):
FORBID_INTERNAL_DOWNLOAD:// tells to let flash player plugin download movie by itself
When a movie loads XML or other data you may need to delay the load of the movie
You can set a timeout in seconds (using PRELOAD prefix) and you can also use 2 different approaches to detect when all data is loaded.
DETECT_READY when library tries to detect objects loaded and then convert the frame into jpeg after all objects were loaded successfully
DETECT_READY:// – with this prefix library tries to detect the first object loaded and then go to conversion into image
DETECT_READY2://
DETECT_READY3://
…
DETECT_READY200:// – you can set the number of objects to wait for before conversion
IMPORTANT NOTE: DETECT_READY prefix can not be used as a standalone prefix. It should be used with PRELOAD:// prefixes as they set “timeout” time to go to conversion even if not object were not loaded
Example 1: (wait for 2 objects, global timeout is 5 sec):
SWFToImage.InputSWFFileName = “PRELOAD5://PRELOAD_READY2://imageTest.swf”
Example 2: (wait for 1 object, global timeout is 2 sec):
SWFToImage.InputSWFFileName = “PRELOAD2://PRELOAD_READY://imageTest.swf”
This is possible via a built-in hack:
Use GET_READY_TIMES:// prefix and the library will return a number of objects actually loaded in the .ImageWidth property
Set SWFToImage = CreateObject(“SWFToImage.SWFToImageObject”)
SWFToImage.InitLibrary “demo”, “demo”
SWFToImage.InputSWFFileName = “PRELOAD7://GET_READY_TIMES://test.swf”
SWFToImage.ImageOutputType = 1
SWFToImage.Execute_Begin
SWFToImage.Execute_GetImage
SWFToImage.Execute_End
MsgBox “Number of Objects actually loaded=” & CStr(SWFTOImage.ImageWidth)
First insert the following ActionScript code inside the movie to indicate that all data is ready and so loading is done: fscommand(“SWFToImage_LoadingIsDone”);
Then in code that uses SWFToImage library use the following prefix:
USE_FSCOMMAND_TO_DETECT_LOADING_IS_DONE://
This prefix tells the library to wait for the “SWFToImage_LoadingIsDone” command from the Flash movie and then convert the movie into an image immediately.
SWFToImage.InputSWFFileName = “PRELOAD10://USE_FSCOMMAND_TO_DETECT_LOADING_IS_DONE://MovieDisplayPassedVar.swf?Variable1=Testing%20Value%20for%20parameter”
IMPORTANT: you should use PRELOAD prefix along with USE_FSCOMMAND_TO_DETECT_LOADING_IS_DONE prefix so library will have a timeout setting for the conversion (in example above it uses 10 seconds timeout setting)
Example (create a movie with actionscript command indicating that loading is done. Code uses SWF Scout library to generate SWF flash movie ):
W = 640
H = 480
FPS = 12
Set Movie = CreateObject(“SWFScout.FlashMovie”)
Movie.InitLibrary “demo”,”demo”
Movie.BeginMovie 0,0,W,H,1,FPS,6
Font = Movie.AddFont( “Arial”,26,true,false,false,false,0)
Text= Movie.AddTextEdit (“edText”,”undefined”,255,100,0,255,Font,10,70,500,120)
Movie.PlaceText Text,DepthForText ‘ place text
Movie.AddScript
Movie.SCRIPT_Compile “if(_root.Variable1!=undefined){edText=_root.Variable1;}else{edText = ‘Variable1 not set’;};”
Movie.ShowFrame 1
Movie.AddScript
Movie.SCRIPT_GetUrl “FSCommand:SWFToImage_LoadingIsDone”, “” ‘ indicate loading is done
Movie.ShowFrame 1
Movie.EndMovie
Movie.SaveToFile “MovieDisplayPassedVar.swf”
PRELOAD:// – with this prefix flash movie is loaded with a little delay
PRELOAD05:// – with this prefix flash movie is loaded with 500 ms delay
PRELOAD1:// – with this prefix flash movie is loaded with 1000 ms delay
PRELOAD15:// – with this prefix flash movie is loaded with 1500 ms delay
PRELOAD2:// – with this prefix flash movie is loaded with 2000 ms delay
PRELOAD25:// – with this prefix flash movie is loaded with 2500 ms delay
PRELOAD3:// – with this prefix flash movie is loaded with 3000 ms delay
PRELOAD35:// – with this prefix flash movie is loaded with 3000 ms delay
PRELOAD4:// – with this prefix flash movie is loaded with 4000 ms delay
PRELOAD45:// – with this prefix flash movie is loaded with 4500 ms delay
PRELOAD5:// – with this prefix flash movie is loaded with 5000 ms delay
PRELOAD55:// – with this prefix flash movie is loaded with 5500 ms delay
PRELOAD6:// – with this prefix flash movie is loaded with 6000 ms delay
PRELOAD65:// – with this prefix flash movie is loaded with 6500 ms delay
PRELOAD7:// – with this prefix flash movie is loaded with 7000 ms delay
PRELOAD75:// – with this prefix flash movie is loaded with 7500 ms delay
PRELOAD8:// – with this prefix flash movie is loaded with 8000 ms delay
PRELOAD85:// – with this prefix flash movie is loaded with 8500 ms delay
PRELOAD9:// – with this prefix flash movie is loaded with 9000 ms delay
PRELOAD95:// – with this prefix flash movie is loaded with 9500 ms delay
PRELOAD10:// – with this prefix flash movie is loaded with 10000 ms delay
PRELOAD150:// – with this prefix flash movie is loaded with 15000 ms delay
PRELOAD200:// – with this prefix flash movie is loaded with 20000 ms delay
Set SWFToImage = CreateObject(“SWFToImage.SWFToImageObject”)
SWFToImage.InputSWFFileName = “PRELOAD1://movie_with_dynamic_data.swf”
SWFToImage.ImageOutputType = 1 ‘ set output image type to Jpeg (0 = BMP, 1 = JPG, 2 = GIF)
SWFToImage.Execute_Begin ‘ start conversion
SWFToImage.FrameIndex = 1 ‘ set frame index
SWFToImage.Execute_GetImage
SWFToImage.SaveToFile “movie_with_dynamic_data.jpg”
SWFToImage.Execute_End ‘ end conversion
Set SWFToImage = CreateObject(“SWFToImage.SWFToImageObject”)
SWFToImage.InputSWFFileName = “FORBID_INTERNAL_DOWNLOAD://PRELOAD1://movie_with_dynamic_data.swf?myparam=123”
SWFToImage.ImageOutputType = 1 ‘ set output image type to Jpeg (0 = BMP, 1 = JPG, 2 = GIF)