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