getURL

ActionScript?からJavaScriptの関数を実行する

ActionScript?

this.btn.onRelease = function() {
	getURL('javascript:hello();');
};

HTMLファイル(パブリッシュしたHTMLを使う場合)

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>flashvars02</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
</head>
<body bgcolor="#ffffff">
<!--ムービーで使用されている URL-->
<!--ムービーで使用されているテキスト-->
<!-- saved from url=(0013)about:internet -->
<script language="javascript">
	function hello() {
		alert("HelloWorld!!");
	}
	
	if (AC_FL_RunContent == 0) {
		alert("このページでは \"AC_RunActiveContent.js\" が必要です。");
	} else {
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
			'width', '550',
			'height', '400',
			'src', 'flashvars02',
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', 'window',
			'devicefont', 'false',
			'id', 'flashvars02',
			'bgcolor', '#ffffff',
			'name', 'flashvars02',
			'menu', 'true',
			'allowFullScreen', 'false',
			'allowScriptAccess','sameDomain',
			'movie', 'flashvars02',
			'salign', ''
			); //end AC code
	}
</script>
<noscript>
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
		codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" 
		width="550" 
		height="400" 
		id="flashvars02" 
		align="middle">
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="allowFullScreen" value="false" />
	<param name="movie" value="flashvars02.swf" />
	<param name="quality" value="high" />
	<param name="bgcolor" value="#ffffff" />
	<embed src="flashvars02.swf" 
		quality="high" 
		bgcolor="#ffffff" width="550" 
		height="400" 
		name="flashvars02" 
		align="middle" 
		allowScriptAccess="sameDomain" 
		allowFullScreen="false" 
		type="application/x-shockwave-flash" 
		pluginspage="http://www.macromedia.com/go/getflashplayer" />
	</object>
</noscript>
</body>
</html>

HTMLファイル(swfobjectを使う場合)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script type="text/javascript" src="./js/swfobject/swfobject.js"></script>
<script type="text/javascript" src="./js/swfaddress/swfaddress.js"></script>

<script type="text/javascript">
<!--
	function hello() {
		alert("HelloWorld!!");
	}
-->
</script>

<title></title>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div id="flashcontent"> <strong>MSG</strong> </div>
<script type="text/javascript">
	// <![CDATA[
	var so = new SWFObject('flashvars02.swf', 'flashvars02', '1024', '640', '8', '#FFFFFF');
	so.useExpressInstall('./js/swfobject/expressinstall.swf');
	so.addVariable('variable1', 'value1');
	so.addParam('menu', 'false');
	so.addParam('scale', 'noscale');
	so.write('flashcontent');
	// ]]>
</script>
</body>
</html>

実行結果

こちら HTMLファイル(パブリッシュしたHTMLを使う場合)
こちら HTMLファイル(swfobjectを使う場合)

エラー

現象

以下のようなエラーが出る場合がある。

*** セキュリティ Sandbox 違反 *** 

解決策

HTMLファイルのObjectタグ内に、以下を記述する。
valueの値は、always、sameDomain、neverを記述することができる。

<object>
<param name="allowScriptAccess" value=*** />
<embed allowScriptAccess="***" />
</object>

メモ

<script language="JavaScript" type="text/javascript">
function WindowOpen()
{
	window.open('sample.html','window_name','toolbar=no, width=400, height=300, scrollbars=no');
}
</script>

参考サイト

クロスドメイン処理におけるSandbox違反回避のまとめ


Comment



Counter: 8008, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:03 (1276d)