as3 刮奖

as3

package 
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;
	import flash.net.URLVariables;
	import flash.net.URLRequestHeader;
	import flash.utils.ByteArray;
	import flash.external.ExternalInterface;
	import flash.display.BitmapData;

	/**
	 * ...
	 * @author .....pangzimin
	 * @contact.....QQ:26983075
	 */

	public class Init extends MovieClip
	{
		private var ScratchRequest:URLRequest = new URLRequest("http://172.16.102.18/flash/getScratch.php");
		
		private var award:Array = new Array();
		private var count:String = award[uint(Math.random() * 10)];
		private var txt:TextField=new TextField();
		private var txt2:TextField=new TextField();
		//private var bg:Sprite = createball(100,100,100);
		private var bg:Sprite = new Sprite();
		private var bgborder:Sprite = new Sprite();
		private var btn:MyBtn = new MyBtn();
		private var canvas:BitmapData;
		
		private var area:Number;//总面积
		private var colors:Array; 
		private var color:uint;//过滤的颜色
		
		private var mc:Sprite=new Sprite();
		var i:int = 0;
		var j:int = 0;
		private var urlLoader:URLLoader;
		private var phpUrl:URLRequest;
		
		private var detect:int = 0;
		private var printout = '';

		public function Init()
		{
			//trace('来自HTML:'+stage.loaderInfo.parameters.detect);
			detect = stage.loaderInfo.parameters.detect;
			// constructor code
			var urlLoader:URLLoader=new URLLoader();
			ScratchRequest.method = URLRequestMethod.POST;

			urlLoader.addEventListener(Event.COMPLETE,completeHandler);

			urlLoader.load(ScratchRequest);

			bg.graphics.lineStyle(2,0xff3300);
			bg.graphics.beginFill(0x000000);
			bg.graphics.drawRoundRect(50,50,200,80,20,20);
			bg.graphics.endFill();
			
			//mc.width = 200;
			//mc.height = 80;


			bgborder.graphics.lineStyle(2,0xff3300);
			bgborder.graphics.beginFill(0xffffff);
			bgborder.graphics.drawRoundRect(50,50,200,80,20,20);
			bgborder.graphics.endFill();

			InitConstructor();
		}

		function callJs():void
		{
			//bgborder.removeEventListener(MouseEvent.MOUSE_MOVE,MouseMoveHandler);
			//stage.removeEventListener(MouseEvent.MOUSE_DOWN,Start);
			//stage.removeEventListener(MouseEvent.MOUSE_UP,Remove);
			//stage.removeEventListener(Event.ENTER_FRAME,mouse);
			
			ExternalInterface.call("sendToJs",count,j);
		}

		function completeHandler(evt:Event)
		{
			//trace(evt.target.data);
			award = evt.target.data.split('&');
			txt2.htmlText = "<font size='16' color='#ffffff'><b>" + award + "</b></font>";
			//几率
			count = award[uint(Math.random() * 10)];

			if (count==null)
			{
				count = "谢谢参与";
			}
			trace(award + ":" + count);

			txt.htmlText = "<font size='35' color='#cc0000'><b>" + count + "</b></font>";
		}

		private function InitConstructor()
		{
			stage.frameRate = 120;

			txt.htmlText = "<font size='35' color='#ffffff'><b>" + count + "</b></font>";
			txt2.text = "调试";
			txt.width = 300;
			txt2.width = 550;
			addChild(txt2);
			txt.selectable = false;
			bg.addChild(txt);
			txt.x = 80;
			txt.y = 70;
			
			btn.addEventListener(MouseEvent.MOUSE_OVER,btnMouseOVER);
			btn.addEventListener(MouseEvent.MOUSE_OUT,btnMouseOUT);
			btn.addEventListener(MouseEvent.CLICK,btnMouseClick);
			
			bgborder.addEventListener(MouseEvent.MOUSE_OVER,btnMouseOVER);
			bgborder.addEventListener(MouseEvent.MOUSE_OUT,btnMouseOUT);
			
			addChild(bgborder);
			addChild(bg);
			addChild(btn);
			btn.x = 60;
			btn.y = 170;
			bg.x = 200;
			bg.y = 100;

			bgborder.x = 200;
			bgborder.y = 100;

			addChild(mc);
			bg.mask = mc;

			stage.addEventListener(MouseEvent.MOUSE_DOWN,Start);
			stage.addEventListener(MouseEvent.MOUSE_UP,Remove);
			stage.addEventListener(Event.ENTER_FRAME,mouse);
			//stage.addEventListener(MouseEvent.MOUSE_MOVE,MouseMoveHandler);

		}
		
		private function MouseMoveHandler(e:MouseEvent):void{
			
			//canvas = new BitmapData(200, 80);
			//canvas.draw(bg);
			
			
			color = canvas.getPixel(stage.mouseX,stage.mouseY); 
			
			//6291456 13369344 8716288 2031616 4128768 11272192
			
			
			
			if(color != 0 && color != 6291456 && color != 13369344 && color != 8716288 && color != 2031616 && color != 4128768 && color != 11272192){
				var mcs:Sprite = createball(0,0,10);
				mc.addChild(mcs);i++;
				mcs.x = mouseX;
				mcs.y = mouseY;
				
				canvas = new BitmapData(550,400);
				canvas.draw(stage);
				
				//trace("渲染数量" + i + "  检测刮出数量:" + j + "  X:" + (stage.mouseX) + " Y:" + (stage.mouseY) + " 色素:" + canvas.getPixel(stage.mouseX,stage.mouseY));
				
				
				
			}else{
				canvas = new BitmapData(550,400);
				canvas.draw(stage);
			}
			trace("当前色素:"+canvas.getPixel(stage.mouseX,stage.mouseY));
			
			if(canvas.getPixel(stage.mouseX,stage.mouseY) == 6291456 || canvas.getPixel(stage.mouseX,stage.mouseY) == 13369344 || canvas.getPixel(stage.mouseX,stage.mouseY) == 8716288 || canvas.getPixel(stage.mouseX,stage.mouseY) == 2031616 || canvas.getPixel(stage.mouseX,stage.mouseY) == 4128768 || canvas.getPixel(stage.mouseX,stage.mouseY) == 11272192){
					j++;
					trace('检测刮出:' + j);
				}
			printout = "渲染数量" + i + "    检测刮出数量:" + j + "    X:" + (stage.mouseX) + "  Y:" + (stage.mouseY) + "   色素:" + canvas.getPixel(stage.mouseX,stage.mouseY);
			txt2.htmlText = "<font size='16' color='#000000'><b>" + printout + "</b></font>";
			
			
			//trace((stage.mouseX - 20) + " "+ (stage.mouseY - 20) + ":" + canvas.getPixel(stage.mouseX - 20,stage.mouseY - 20));
			if(j >= detect){
				callJs();
			}
			
		}
		
		private function btnMouseOVER(e:MouseEvent):void{
			buttonMode = true;
		}
		
		private function btnMouseOUT(e:MouseEvent):void{
			buttonMode = false;
		}
		
		private function btnMouseClick(e:MouseEvent):void{
			ExternalInterface.call("scratch",count,j);
		}
		
		private function chekScratch():void{
			
			//var myBitmapData:BitmapData = new BitmapData(200, 80, true,0);   
			//myBitmapData.draw(mc);
			//var rgb=myBitmapData.getPixel(0,0);
			
			i++;
			//trace(i);
		}

		private function createball(x:Number,y:Number,s:Number):Sprite
		{
			var ball:Sprite=new Sprite();
			ball.graphics.beginFill(0x333333);
			ball.graphics.drawCircle(x,y,s);
			chekScratch();
			return ball;
		}

		function Remove(evt:MouseEvent):void
		{
			//stage.removeEventListener(Event.ENTER_FRAME,mouse);
			bgborder.removeEventListener(MouseEvent.MOUSE_MOVE,MouseMoveHandler);
		}

		function Start(evt:MouseEvent):void
		{
			//stage.addEventListener(Event.ENTER_FRAME,mouse);
			bgborder.addEventListener(MouseEvent.MOUSE_MOVE,MouseMoveHandler);
		}

		function mouse(evt:Event):void
		{
			/*var mcs:Sprite = createball(0,0,10);
			mc.addChild(mcs);
			mcs.x = mouseX;
			mcs.y = mouseY;*/
			canvas = new BitmapData(550,400);
			canvas.draw(stage);
			
			//trace((stage.mouseX) + " "+ (stage.mouseY) + ":" + canvas.getPixel(stage.mouseX,stage.mouseY));
		}

	}

}

PHP

<?php

$data = '5000万&一等奖&二等奖&三等奖';
echo ($data);

?>

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" xml:lang="zh-CN">
<head>
    <title>Scratch</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="screen">
    html, body { height:100%; background-color: #eee;}
    body { margin:0; padding:0; overflow:hidden; }
    #flashContent { width:100%; height:100%; }
    </style>
</head>
<script>
window.onload = function (){
	document.getElementById('text').value = '';
}

function sendToJs(value,checkV) {
	
	document.getElementById('text').value = value;
}
function scratch(value,checkV) {
	if(checkV >= 6){
		alert(value);
	}else{
		alert('再多刮几下又不会怀孕:' + checkV);
	}
}
</script>
<body>
<div style="margin:20px auto; width:550px; height:430px;">
	<div style=" width:550px; margin:10px; font-size:12px;">
    	兑奖结果:<input id="text" style="background:#fff; color:#cc0000;" type="text" disabled="disabled" value="" readonly="readonly" />
    </div>
    <div id="flashContent">
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="Scratch" align="middle">
            <param name="movie" value="Scratch.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#ffffff" />
            <param name="play" value="true" />
            <param name="loop" value="true" />
            <param name="FlashVars" value="detect=4" />
            <param name="wmode" value="window" />
            <param name="scale" value="showall" />
            <param name="menu" value="true" />
            <param name="devicefont" value="false" />
            <param name="salign" value="" />
            <param name="allowScriptAccess" value="sameDomain" />
            <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="Scratch.swf" width="550" height="400">
                <param name="movie" value="Scratch.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffffff" />
                <param name="FlashVars" value="detect=5" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="window" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
            <!--<![endif]-->
                <a href="http://www.adobe.com/go/getflash">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="获得 Adobe Flash Player" />
                </a>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->
        </object>
    </div>
</div>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EndingCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值