↑ホーム(よかひよかとき) へ
     こんがらがって困るので、使用頻度大のものをコピー&ペーストで使えるよう 「覚え書」 としたものです。 参考になれば喜。 動作確認は自責で。
JavaScriptの覚え書 ActionScript2の覚え書 ActionScript3の覚え書 Javaアプレットの覚え書
Perlの覚え書 MTASCによるSWF作成の覚え書 Flex3によるSWF作成の覚え書 FLASH および Javaアプレット作品(おもちゃ箱)

[ このページへのリンクはフリーです ]

よかひよかときの (((((((((((( ActionScript3 の覚え書 ))))))))))))    .
■データをHTMLから受け取る
■データをCGIへ送信する


■データをHTMLから受け取る   このページのトップへ 更新日
ActionScript3
(例)(すべてのファイルを、エンコードの種類を Unicode(UTF-8) として作成すれば日本語文字も可)
 Sample.as   ……… ActionScript3 で書かれたソースコードファイル
 Sample.swf  ……… Sample.as をコンパイルして作られる swf ファイル
 Sample.html  ……… Sample.swf ファイルを表示する html ファイル。

とする。 HTMLから受け取るデータは、str=この文章などを送ります&a=777&b=888" とする。(複数個のデータを扱う場合には、このように & で区切る)

(例)
 まず、 Sample.as のコードは次のようにする。

//************************************************
// Sample.as (データ str,a,b を HTMLから受け取る)
//************************************************
package
{
	import flash.display.*;
	import flash.text.*;

	//----------------------------------------------------------------
	public class Sample extends Sprite
	{
		//------------------------------------------------------------
		public function Sample()
		{
			var flashvars:Object=LoaderInfo(loaderInfo).parameters; // HTMLからデータを受け取る---
			var str:String=flashvars["str"];
			var a:int=parseInt(flashvars["a"]); // 数字を数値化する
			var b:int=parseInt(flashvars["b"]); // 数字を数値化する

			var txt:TextField=new TextField(); // 受け取ったデータを表示する---
			stage.addChild(txt);
			txt.x=100;
			txt.y=100;
			txt.width=300;
			txt.height=20;
			txt.text="str="+str+"   a="+a+"   b="+b;
			var ft:TextFormat=new TextFormat();
			ft.size=14;
			ft.color=0xff0000;
			txt.setTextFormat(ft);
		}
	}
}


 Sample.html は、例えば次のようにする。

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Sample</title>
</head>
<body>
	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
 width="400" height="300">
	<param name="movie" value="Sample.swf" />
	<param name="base" value="." />
	<param name="quality" value="high" />
	<param name="FlashVars" value="str=この文章などを送ります&a=777&b=888" />
	<embed src="Sample.swf" base="." quality="high"
 pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
 type="application/x-shockwave-flash" width="400" height="300"></embed>
	</object>
</body>
</html>

2009.01.10
■データをCGIへ送信する   このページのトップへ 更新日
ActionScript3
 「送信」 ボタンをクリックしたらデータを送信し、そのデータを別ファイルに書き込む、ことをやってみる。

(例)(すべてのファイルを、エンコードの種類を Unicode(UTF-8) として作成すれば日本語文字も可)
 Sample.as   ……… ActionScript3 で書かれたソースコードファイル
 Sample.swf  ……… Sample.as をコンパイルして作られる swf ファイル
 Sample.cgi  ……… Sample.swf ファイルを表示する cgi ファイル
 Save.cgi    ……… 送られてきたデータを書き込む cgi ファイル
 txt.data    ……… データを上書きするファイル(なければ勝手に作る)

とする。 送信するデータは、str="この文章を送信します" とする。

 まず、 Sample.as のコードは次のようにする。

//************************************************
// Sample.as (データ str を Save.cgi に送信する)
//************************************************
package
{
	import flash.display.*;
	import flash.text.*;
	import flash.events.*;
	import flash.net.*;

	//----------------------------------------------------------------
	public class Sample extends Sprite
	{
		private var str:String;

		//------------------------------------------------------------
		public function Sample()
		{
			str="この文章を送信します";

			var txtSave:TextField=new TextField(); // 送信ボタンを設置する
			stage.addChild(txtSave);
			txtSave.x=100;
			txtSave.y=120;
			txtSave.width=80;
			txtSave.height=20;
			txtSave.background=true;
			txtSave.backgroundColor=0xffdddd;
			txtSave.border=true;
			txtSave.borderColor=0x888888;
			txtSave.text="送信";
			var ft:TextFormat=new TextFormat();
			ft.size=12;
			ft.color=0x000000;
			ft.align="center";
			txtSave.setTextFormat(ft);
			txtSave.addEventListener(MouseEvent.CLICK, botanSave);
		}

		//------------------------------------------------------------
		private function botanSave(evt:MouseEvent):void
		{
			var req:URLRequest=new URLRequest();
			req.url="Save.cgi";
			req.data=str;
			req.method=URLRequestMethod.POST;
			navigateToURL(req, "_self");
			return;
		}
	}
}


 次に Sample.swf を表示する Sample.cgi は、例えば次のようにする。

#************
# Sample.cgi
#************
#!/usr/local/bin/perl
print "Content-Type: text/html; charset=UTF-8P\n\n";
#===========================================
print <<"PAGE1";
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Sample</title>
</head>
<body>
	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
 width="600" height="400">
	<param name="movie" value="Sample.swf" />
	<param name="base" value="." />
	<param name="quality" value="high" />
	<embed src="Sample.swf" base="." quality="high"
 pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
 type="application/x-shockwave-flash" width="600" height="400"></embed>
	</object>
</body>
</html>
PAGE1
exit;


 さらに、Save.cgi は、例えば次のようにする。

#************
# Save.cgi
#************
#!/usr/local/bin/perl
print "Content-Type: text/html; charset=UTF-8P\n\n";
#====================================================
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # 入力データの読み込み
if($buffer)
{
	open(OUT, ">txt.dat");
	flock(OUT,2);
	print(OUT "$buffer\n");
	close(OUT);
	flock(OUT,8);
	#---------------------------------------------
	$check_msg="「txt.dat」ファイルに保存しました。";
	&check_hyouzi;
}
else
{
	$check_msg="保存できませんでした。";
	&check_hyouzi;
}
exit;
#*********************************************************************
sub check_hyouzi{
print <<"HYOUZI";
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<BODY>
	$check_ms
</BODY>
</HTML>
HYOUZI
exit;
}



2009.01.10

このページのトップへ

**********************************************************************************
Copyright(C) 2006- YokahiYokatoki