多くの携帯端末はFlashをサポートしていないため、多くのカラフルなFlash効果を生成することはできません。アクセスしたWebページの種類(PCかモバイル端末か)を判断できます。適切な薬を処方して解決策を見つけることができます。
アクセスの種類がモバイル端末の場合は、Flash (.swf suffix) アニメーションの代わりに .gif を使用し、PC 側での変更はありません。こっちのほうが完璧ですね!
以下に示すように、アクセスの種類を検出するために関数 flashChecker() が使用されます。
<script language="javascript" type="text/javascript"> /* *用来检测是 PC还是移动终端 *返回:flashChecker().f == true PC终端 * 反之为移动终端 */ function flashChecker() { var hasFlash = 0; var flashVersion = 0; var isIE = /*@cc_on!@*/0; if (isIE) { var swf = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); if (swf) { hasFlash = 1; VSwf = swf.GetVariable("$version"); flashVersion = parseInt(VSwf.split(" ")[1].split(",")[0]); } } else { if (navigator.plugins && navigator.plugins.length > 0) { var swf = navigator.plugins["Shockwave Flash"]; if (swf) { hasFlash = 1; var words = swf.description.split(" "); for (var i = 0; i < words.length; ++i) { if (isNaN(parseInt(words[i]))) { continue; } flashVersion = parseInt(words[i]); } } } } return { f: hasFlash, v: flashVersion }; } </script>
拡張:
<script language="javascript" type="text/javascript"> /* * 根据参数 输出swf动画 * url :单击 swf动画 后的跳转地址 * swfLink: *.swf 素材地址 */ function GetSwfHtml(url, swfLink) { html = "<a style='position: absolute; top: 0; left: 0; bottom: 0; right: 0; display: block; " + "width: 100%; height: expression(this.parentNode.scrollHeight); filter: alpha(opacity=0);" + "opacity: 0; background: #FFF;' href='" + url + "' target='_blank'>" + "</a>" + "<object width='590' height='55' align='middle'>" + "<param name='allowScriptAccess' value='never' />" + "<param name='quality' value='high' />" + "<param name='wmode' value='transparent' />" + "<param name='movie' value='" + swfLink+ "' />" + "<embed wmode='transparent' src='" + swfLink+ "' quality='high' " + "width='590' height='55' align='middle' allowscriptaccess='never' type='application/x-shockwave-flash' " + "pluginspage='" + url + "' />" + "</object>"; return html; } </script>
Web サイトのアクセス タイプが PC かモバイル端末かを決定する Javascript カスタム関数の詳細については、PHP 中国語 Web サイトの関連記事に注目してください。