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>