特殊:Badtitle/NS100:Shockwave:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Wikibot留言 | 贡献
无编辑摘要
Wikibot留言 | 贡献
无编辑摘要
第63行: 第63行:
* '''Workaround:''' None yet.
* '''Workaround:''' None yet.
----
----
[[category:CategoryDocumentation]]


[[category:UbuntuHelp]]
[[category:UbuntuHelp]]

2009年5月12日 (二) 18:50的版本

{{#ifexist: :Shockwave/zh | | {{#ifexist: Shockwave/zh | | {{#ifeq: {{#titleparts:Shockwave|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:Shockwave|1|-1|}} | zh | | }}

Shockwave is a multimedia player. Designed by Macromedia in the mid 1990s, it was followed by Shockwave Flash (or just Flash), a simpler format which became far more popular. Today, Shockwave is most commonly used for Internet games.

Installation

Unfortunately, the Shockwave player is only available for Windows. On a PC, it may be possible to run Shockwave under Ubuntu using Wine and running the Windows versions of Firefox and the Shockwave player. (Wine does not work on PowerPC and may not work as expected on 64-bit PCs.) You can then use mozplugger, a program that lets you "embed" other programs in your web browser. First, install the wine and mozplugger packages (for information on how to do this, see InstallingSoftware).

sudo apt-get install wine mozplugger

You then need to install the Windows version of Firefox (yes, you read that right). Download it from Mozilla's web site. Choose to open the installer with Wine and follow the on-screen instructions. When the installation has finished, you then have to go to a web site that requires Shockwave, and choose to get the missing plugin. Again, follow the on-screen instructions, and when the plugin has installed and is working, you may close Firefox. Now you need to configure mozplugger to use the Windows version of Firefox for Shockwave files. From a terminal, type:

sudo gedit /etc/mozpluggerrc

Add the following two lines to the end of the file:

application/x-director: dir,dcr,dxr,cst,cct,cxt,w3d,fgd,swa: Macromedia Director file
	swallow(firefox.exe) fill: wine "C:\\Program Files\\Mozilla Firefox\\firefox.exe" -chrome "file://Z:$file"

Finally, you need to make Firefox reload the plugin database. Close all Firefox windows and run this command in a terminal:

rm ~/.mozilla/firefox/pluginreg.dat

In later versions this file may have been moved:

rm ~/.mozilla/firefox/ln4t0cle.default/pluginreg.dat

Congratulations, you should now have a working, if not convuluted, Shockwave setup. You can test it on the Test Macromedia Shockwave & Flash Players page. However, some Shockwave objects may not work. See the issues and workaround solutions section below.

Issues and workarounds

Objects appear in a small window of their own

Posssible causes:

  • Cause 1: Wine or Shockwave is still running in the background.
  • Workaround 1: Type this in a terminal to end all wine processes:
killall wine-preloader -s KILL
  • Cause 2: mozplugger does not handle multiple objects.

Unfortunately, there is no fix currently known for this.

Firefox is asking for restoring old sessions before playing objects

  • Cause: Session restore is enabled in the Windows version of Firefox
  • Workaround 1: Type this in a terminal to end all wine processes:
killall wine-preloader -s KILL

Start the Windows version of Firefox. Type "about:config" in the Location Bar and press Enter. Search for "browser.sessionstore.resume_from_crash" and double click to set it to false.

Objects claim they're being run from the harddisk

  • Cause: The files are first downloaded and then run from the Windows version of Firefox.
  • Workaround: Change the /etc/mozpluggerrc file so that streaming is enabled:

Change this line:

swallow(firefox.exe) fill: wine "C:\\Program Files\\Mozilla Firefox\\firefox.exe" -chrome "file://Z:$file"

Into:

swallow(firefox.exe) fill stream: wine "C:\\Program Files\\Mozilla Firefox\\firefox.exe" -chrome "$file"

Then remove ~/.mozilla/firefox/pluginreg.dat and restart Firefox. This may not work if you are connected using IPv6 or a proxy.

Objects claim they're "stolen"

  • Cause (when using streaming): The Shockwave object expects the "Referrer" HTTP header to be set, which mozplugger does not do.
  • Workaround: None yet.