While I was testing repainting condition in bug #27981 using SWFC, I ran
into a problem with Gnash's `MovieClip.getURL()` implementation regarding
FSCommand:
It turned out that while "fscommand:" URI scheme works fine on Gnash via the
built-in `getURL()` function powered by `GETURL2` AVM1 instruction,
it is not recognized in Gnash's `MovieClip.getURL()` method.
On Adobe Flash Player, "fscommand:" URI issued using `MovieClip.getURL()`
works the same as built-in `getURL()`.
I have created test Flash files (Flash 7) using SWFTools's SWFC, libming's
makeswf, and MTASC which tries to issue "fullscreen" FSCommand with "true"
parameter using `MovieClip.getURL("fscommand:fullscreen","true")`, and
run them with `set IgnoreFSCommand false` in `~/.gnashrc` configuration.
This is an image result of `mcgeturl-fscommand.swf` under Adobe Flash Player:
http://i.imgur.com/Ss60C58.png
You'd see that Flash Player recognized the issued FSCommand, and switched to fullscreen mode.
This is an image result of `mcgeturl-fscommand.swf` under Gnash:
http://i.imgur.com/WNWHHU4.png
Gnash's console output shown:
You'd see that Gnash did not recogize the issued FSCommand, and remains in
windowed display. From console output, you'd see that Gnash tried to open
the FSCommand URI via `xdg-open` as if it was a normal URL.
Test SWFs, source code, build script, screenshots, and logs (verbosity 2
+ action error log) are attached as `mcgeturl-fscommand.zip`.
Gnash: 0.8.11dev (git 62cfdfe 16-Jan-2016)
Flash Player: 11.2 r202 (11.2.202.491) Standalone
System: Debian GNU/Linux 7.0 Wheezy i386
Note: This is particularly important for SWF generated using SWFC, as SWFC's
ActionScript compiler seems to recognize neither the built-in `getURL()`
instruction nor the `fscommand()` macro; only way for SWFC-based script
to issue FSCommand is doing it via `MovieClip.getURL()`.
|