静岡理工科大学 菅沼ホーム ActionScript 目次 索引

URLVariables クラス

[内容]

  サーバーとの間で変数を転送するためのクラスです.

継承: URLVariables → Object

[メソッド]

[使用例]

  1. 以下に示すのは,「http サーバと通信を行う例」と,そのプログラム( URLVariables_e.as と CGI )です.質問の箇所にデータを入力し送信ボタンをクリックすると,その下のテキストフィールドに送信した内容がそのまま表示されます.なお,サーバ側の CGI プログラム test.php は,以下に示すように,単に送られてきたデータをそのまま出力しているだけです.
    <?php
    	print_r($_POST);
    ?>
    			
    package
    {
    	import flash.display.Sprite;
    	import flash.text.TextField;
    	import flash.text.TextFieldType;
    	import flash.text.TextFormat;
    	import flash.net.URLLoader;
    	import flash.net.URLRequest;
    	import flash.net.URLVariables;
    	import flash.net.URLRequestMethod;
    	import flash.events.Event;
    	import flash.events.MouseEvent;
    	import flash.filters.DropShadowFilter;
    
    	[SWF(backgroundColor="0xe1ffe1", width="400", height="250", frameRate="30")]
    
    	public class URLVariables_e extends Sprite
    	{
    		private var c : TextField;
    		private var na : TextField;
    		private var msg : TextField;
    		private var ld : URLLoader;
    
    		public function URLVariables_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var tf : TextFormat = new TextFormat();
    			tf.size = 20;
    			tf.bold = true;
    
    			var q_t : TextField = new TextField();
    			q_t.text = "次の問題の答えは?";
    			q_t.width = 190;
    			q_t.height = 25;
    			q_t.x = 105;
    			q_t.y = 10;
    			q_t.type = TextFieldType.DYNAMIC;
    			q_t.setTextFormat(tf);
    			addChild(q_t);
    
    			var q : TextField = new TextField();
    			q.text = "3  +  4  =  ";
    			q.width = 100;
    			q.height = 25;
    			q.x = 50;
    			q.y = 45;
    			q.type = TextFieldType.DYNAMIC;
    			q.setTextFormat(tf);
    			addChild(q);
    
    			c = new TextField();
    			c.width = 200;
    			c.height = 25;
    			c.background = true;
    			c.backgroundColor = 0xffffffff;
    			c.x = 170;
    			c.y = 45;
    			c.type = TextFieldType.INPUT;
    			c.defaultTextFormat = tf;
    			c.filters = [new DropShadowFilter(4, 45, 0xaaaaaa, 1, 2, 2, 1, 1, true)];
    			addChild(c);
    
    			var na_t : TextField = new TextField();
    			na_t.text = "名前:";
    			na_t.width = 70;
    			na_t.height = 25;
    			na_t.x = 20;
    			na_t.y = 84;
    			na_t.type = TextFieldType.DYNAMIC;
    			na_t.setTextFormat(tf);
    			addChild(na_t);
    
    			na = new TextField();
    			na.width = 150;
    			na.height = 25;
    			na.background = true;
    			na.backgroundColor = 0xffffffff;
    			na.x = 110;
    			na.y = 84;
    			na.type = TextFieldType.INPUT;
    			na.defaultTextFormat = tf;
    			na.filters = [new DropShadowFilter(4, 45, 0xaaaaaa, 1, 2, 2, 1, 1, true)];
    			addChild(na);
    
    			var trans : sButton = new sButton("送信", 20);
    			trans.x = 300;
    			trans.y = 80;
    			addChild(trans);
    
    			msg  = new TextField();
    			msg.width = 380;
    			msg.height = 120;
    			msg.background = true;
    			msg.backgroundColor = 0xffffffff;
    			msg.x = 10;
    			msg.y = 120;
    			msg.type = TextFieldType.INPUT;
    			msg.multiline = true;
    			msg.defaultTextFormat = tf;
    			msg.filters = [new DropShadowFilter(4, 45, 0xaaaaaa, 1, 2, 2, 1, 1, true)];
    			addChild(msg);
    
    			ld = new URLLoader();
    			ld.addEventListener(Event.COMPLETE, onComplete);
    			trans.addEventListener(MouseEvent.CLICK, onClick);
    		}
    
    		private function onClick(event:MouseEvent):void {
    			var uv : URLVariables = new URLVariables();
    			uv.c = c.text;
    			uv.na = na.text;
    			var rq : URLRequest = new URLRequest("test.php");
    			rq.method = URLRequestMethod.POST;
    			rq.data = uv;
    			ld.load(rq);
    		}
    
    		private function onComplete(event:Event):void {
    			msg.text = event.target.data;
    		}
    	}
    }
    
    /*******************************************************************/
    /* ボタン                                                          */
    /*      title : タイトル                                           */
    /*      size : フォントサイズ                                      */
    /*      up_c : マウスカーソルがボタンの外にあるときの色            */
    /*      over_c : マウスカーソルがボタンの上にあるときの色          */
    /*      down_c : マウスがクリックされたときの色                    */
    /*      grow_up : マウスカーソルがボタンの外にあるときのグロー色   */
    /*      grow_over : マウスカーソルがボタンの上にあるときのグロー色 */
    /*      grow_down : マウスがクリックされたときのグロー色           */
    /*******************************************************************/
    package
    {
    	import flash.display.Sprite;
    	import flash.display.SimpleButton;
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.text.TextFormatAlign;
    	import flash.text.TextLineMetrics;
    	import flash.filters.GlowFilter;
    
    	public class sButton extends SimpleButton
    	{
    		public function sButton(title:String="Button", size:int=15, up_c:uint=0xffffff00, over_c:uint=0xffadff2f, down_c:uint=0xff00ff00, grow_up:uint=0xdddddd, grow_over:uint=0xdddddd, grow_down:uint=0xdddddd)
    		{
    					// ボタンの外
    			var msg1 : TextField = new TextField();
    			msg1.text = title;
    			var tf : TextFormat = new TextFormat();
    			tf.size = size;
    			tf.align = TextFormatAlign.CENTER;
    			msg1.setTextFormat(tf);
    			var ms : TextLineMetrics = msg1.getLineMetrics(0);
    			msg1.width = ms.width + 10;
    			msg1.height = ms.height;
    			msg1.x = 10;
    			msg1.y = 5;
    			var er : Number = 0.8 * msg1.height;
    			var gr : Number = 0.3 * msg1.height;
    
    			var r1 : Sprite = new Sprite();
    			var a1 : Number = (up_c >>> 24) / 255;
    			up_c = up_c & 0x00ffffff;
    			r1.graphics.beginFill(up_c, a1);
    			r1.graphics.drawRoundRect(0, 0, msg1.width+20, msg1.height+10, er, er);
    			r1.graphics.endFill();
    			r1.filters = [new GlowFilter(grow_up, a1, gr, gr, 3, 3, true)];
    			r1.addChild(msg1);
    					// ボタンの上
    			var msg2 : TextField = new TextField();
    			msg2.text = title;
    			msg2.setTextFormat(tf);
    			msg2.width = ms.width + 10;
    			msg2.height = ms.height;
    			msg2.x = 10;
    			msg2.y = 5;
    
    			var r2 : Sprite = new Sprite();
    			var a2 : Number = (over_c >>> 24) / 255;
    			over_c = over_c & 0x00ffffff;
    			r2.graphics.beginFill(over_c, a2);
    			r2.graphics.drawRoundRect(0, 0, msg2.width+20, msg2.height+10, er, er);
    			r2.graphics.endFill();
    			r2.filters = [new GlowFilter(grow_over, a2, gr, gr, 3, 3, true)];
    			r2.addChild(msg2);
    					// ボタンをクリック
    			var msg3 : TextField = new TextField();
    			msg3.text = title;
    			msg3.setTextFormat(tf);
    			msg3.width = ms.width + 10;
    			msg3.height = ms.height;
    			msg3.x = 10;
    			msg3.y = 5;
    
    			var r3 : Sprite = new Sprite();
    			var a3 : Number = (down_c >>> 24) / 255;
    			down_c = down_c & 0x00ffffff;
    			r3.graphics.beginFill(down_c, a3);
    			r3.graphics.drawRoundRect(0, 0, msg3.width+20, msg3.height+10, er, er);
    			r3.graphics.endFill();
    			r3.filters = [new GlowFilter(grow_down, a3, gr, gr, 3, 3, true)];
    			r3.addChild(msg3);
    
    			useHandCursor = true;
    			upState = r1;
    			overState = r2;
    			downState = r3;
    			hitTestState = r3;
    		}
    	}
    }
    			

[参照]

URLRequest クラスURLLoader クラス

静岡理工科大学 菅沼ホーム ActionScript 目次 索引