package
{
/*
Realizzato da Nazareno Marcello Ciampa.
#######################################
NON CANCELLARE QUESTO COMMENTO ::::::::>
#######################################
sito:http://www.marcellociampa.it
*/
import flash.display.*;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.system.Security;
import flash.display.Graphics;
import flash.display.Shape;
import flash.display.Sprite;
import flash.utils.*;
import flash.net.URLLoader;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
public class lavagnacs3 extends MovieClip
{
public var timed:int=0;
var intervalId:uint;
var speed1:int=5;
public var grafite:Shape;
public var d:Boolean=false;
public var strumento1:MovieClip;
public var color1:uint=0xff0000;
public var size1:int=2;
public var alpha1:Number=1;
// Memoria tratto
public var arrX:Array=new Array();
public var arrY:Array=new Array();
public var arrAlpha:Array=new Array();
public var arrSize:Array=new Array();
public var arrColor:Array=new Array();
public var arrTime:Array=new Array();// getTime()
//public var TNow:uint=0;
//PACCCHETTI
public var pacchettiX:Array=new Array();
public var pacchettiY:Array=new Array();
public var pacchettiS:Array=new Array();
public var pacchettiC:Array=new Array();
public var pacchettiA:Array=new Array();
public var pack:int=0;
public var remoteP:int=0;
public var localP:int=0;
// parametri URL:
public var saveLoad:URLLoader= new URLLoader();
public var saveUrl:URLRequest;
public var leggiXML:XML=new XML();
public var leggiTrak:XMLList;
public var readLoad:URLLoader= new URLLoader();
public var urlL:String="http://www.nomedeltuosito.es/nome_cartella/php/load2.php";
public var readUrl:URLRequest=new URLRequest(urlL+randomVar().toString());
public var varsParams:String="";
public var arrParams:Array=new Array();
public var arrParamsName:Array=new Array();
public function lavagnacs3():void
{
init();
disegna();
//leggiDatiInit();
root.loaderInfo.addEventListener(Event.COMPLETE, flashVars);
}
public function flashVars(e:Event):void
{
var tf:TextField = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
tf.border = true;
addChild(tf);
tf.y=100;
tf.appendText("params:" + "\n");
try {
var keyStr:String;
var valueStr:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (keyStr in paramObj) {
valueStr = String(paramObj[keyStr]);
arrParamsName.push(keyStr);
arrParams.push(valueStr);
varsParams+="&" + keyStr + "=" + valueStr;
tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n");
}
} catch (error:Error) {
tf.appendText(error.toString());
}
tf.appendText(varsParams);
leggiDatiInit();
}
private function init():void
{
stage.frameRate=31;
strumento1=tratto_mc;
grafite=new Shape();
zero.addChild(grafite);
}
public function disegna():void
{
//strumento1.addEventListener(MouseEvent.MOUSE_DOWN,disegnaPlay);
tratto_mc.addEventListener(MouseEvent.MOUSE_DOWN,disegnaPlay);
colorPicker1.addEventListener(Event.CHANGE,changeColor);
numStep1.addEventListener(Event.CHANGE,changeSize);
numStepAlpha.addEventListener(Event.CHANGE,changeAlpha);
play1_mc.addEventListener(MouseEvent.MOUSE_DOWN,caricaDisegno);
play2_mc.addEventListener(MouseEvent.MOUSE_DOWN,setMyInterval);
cancella1_mc.addEventListener(MouseEvent.MOUSE_DOWN,cancella);
cancella2_mc.addEventListener(MouseEvent.MOUSE_DOWN,cancellaArrDis);
salvaDati_mc.addEventListener(MouseEvent.MOUSE_DOWN,salvaDati);
leggiDati_mc.addEventListener(MouseEvent.MOUSE_DOWN,leggiDati);
//cancellaArrDis
}
private function disegnaPlay(event:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_DOWN,press1);
stage.addEventListener(MouseEvent.MOUSE_UP,press0);
}
private function disegnaStop():void
{
stage.removeEventListener(MouseEvent.MOUSE_DOWN,press1);
stage.removeEventListener(MouseEvent.MOUSE_UP,press0);
}
private function press0(event:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,tratto);
arrX.push("x");
arrY.push("x");
arrAlpha.push("x");
arrSize.push("x");
arrColor.push("x");
//arrTime.push(getTime());// getTime()
}
private function press1(event:MouseEvent):void
{
grafite.graphics.lineStyle(size1,color1,alpha1);
grafite.graphics.moveTo(mouseX,mouseY);
stage.addEventListener(MouseEvent.MOUSE_MOVE,tratto);
}
private function tratto(event:MouseEvent):void
{
//event.target.graphics.moveTo(mouseX,mouseY);
grafite.graphics.lineTo(mouseX,mouseY);
memoTratto()
}
//colorPicker1
private function changeColor(event:Event):void
{
//color1=event.target.selectedColor;
color1=event.target.selectedColor;
}
//Slider1
// numStep1
private function changeSize(event:Event):void
{
//color1=event.target.selectedColor;
size1=event.target.value;
}
private function changeAlpha(event:Event):void
{
//color1=event.target.selectedColor;
alpha1=event.target.value;
}
// Memorizza tratto
private function memoTratto():void
{
arrX.push(mouseX);
arrY.push(mouseY);
arrAlpha.push(alpha1);
arrSize.push(size1);
arrColor.push(color1);
//arrTime.push(getTime())
/*
trace("X:");
trace(arrX.toString());
trace("Y:");
trace(arrY.toString());
trace("Alpha:");
trace(arrAlpha.toString());
trace("Size:");
trace(arrSize.toString());
trace("Color:");
trace(arrColor.toString());
*/
}
private function cancella(event:MouseEvent):void
{
grafite.graphics.clear();
//arrX =new Array();
//arrY =new Array();
//arrAlpha =new Array();
//arrSize =new Array();
//arrColor =new Array();
}
private function cancellaArrDis(event:MouseEvent):void
{
grafite.graphics.clear();
arrX =new Array();
arrY =new Array();
arrAlpha =new Array();
arrSize =new Array();
arrColor =new Array();
//arrTime=new Array();
}
private function setMyInterval(event:MouseEvent):void
{
grafite.graphics.clear();
//arrX.push("x");
//arrY.push("x");
//arrAlpha.push("x");
//arrSize.push("x");
//arrColor.push("x");
//arrTime.push(getTime())
intervalId = setInterval(playDisegno, speed1);
}
private function setMyIntervalInit():void
{
grafite.graphics.clear();
//arrX.push("x");
//arrY.push("x");
//arrAlpha.push("x");
//arrSize.push("x");
//arrColor.push("x");
//arrTime.push(getTime())
intervalId = setInterval(playDisegno, speed1);
}
private function caricaDisegno(event:MouseEvent):void
{
grafite.graphics.lineStyle(size1,color1,alpha1);
for(var i:int=0;i<arrX.length;i++)
{
if(arrX[i]=="x")
{
d=true;
}
else
{
if(d==true)
{
grafite.graphics.lineStyle(arrSize[i],arrColor[i],arrAlpha[i]);
grafite.graphics.moveTo(arrX[i],arrY[i]);
d=false;
}
else
{
//grafite.graphics.lineStyle(arrSize[i],arrColor[i],arrAlpha[i]);
grafite.graphics.lineTo(arrX[i],arrY[i]);
d=false;
}
}
}
}
private function playDisegno():void
{
//grafite.graphics.clear();
if(arrX[timed]=="x")
{
d=true;
timed+=1;
}
else
{
if(d==true)
{
grafite.graphics.lineStyle(arrSize[timed],arrColor[timed],arrAlpha[timed]);
grafite.graphics.moveTo(arrX[timed],arrY[timed]);
d=false;
}
else
{
//grafite.graphics.lineStyle(arrSize[timed],arrColor[timed],arrAlpha[timed]);
grafite.graphics.lineTo(arrX[timed],arrY[timed]);
d=false;
}
timed+=1;
}
//trace(timed);
if(timed>arrX.length)
{
clearInterval(intervalId);
/*
arrX.push("x");
arrY.push("x");
arrAlpha.push("x");
arrSize.push("x");
arrColor.push("x");
*/
//arrTime.push(getTime())
timed=0;
}
}
/* DATI DATI DATI DATI DATI DATI DATI DATI DATI DATI
metodi che gestiscono la lettura e l'invio dei dati.
*/// DATI DATI DATI DATI DATI DATI DATI DATI DATI DATI
private function salvaDati(event:MouseEvent):void
{
var variables:URLVariables = new URLVariables();
variables.xP=arrX.toString();
variables.yP=arrY.toString();
variables.cP=arrColor.toString();
variables.sP=arrSize.toString();
variables.aP=arrAlpha.toString();
saveUrl=new URLRequest("http://www.nomedeltuosito.es/nome_cartella/php/save.php"+randomVar().toString());
saveUrl.method=URLRequestMethod.POST;
saveUrl.data = variables;
//saveUrl.xP=
try {
saveLoad.load(saveUrl);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
//saveLoad.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
text1.text="Salvataggio in corso.. ";
saveLoad.addEventListener(Event.COMPLETE, traceCiao);
}
private function leggiDatiInit():void
{
readUrl=new URLRequest(urlL+randomVar()+varsParams+"&pack=1");
try {
readLoad.load(readUrl);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
readLoad.addEventListener(Event.COMPLETE, loaderCompleteHandler);
}
private function leggiDati(event:MouseEvent):void
{
readUrl=new URLRequest(urlL+randomVar()+varsParams+"&pack=1");
try {
readLoad.load(readUrl);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
readLoad.addEventListener(Event.COMPLETE, loaderCompleteHandler);
}
private function loaderCompleteHandler(event:Event):void {
leggiXML=new XML(readLoad.data);
leggiTrak=new XMLList(leggiXML);
remoteP=int(leggiXML.trak[0].p.valueOf());
localP=1;
arrX=new Array();
arrY=new Array();
arrAlpha=new Array();
arrSize=new Array();
arrColor=new Array();
for(var i=0;i<leggiXML.child("trak").length();i++)
{
arrX.push(leggiXML.trak[i].x.valueOf());
arrY.push(leggiXML.trak[i].y.valueOf());
arrAlpha.push(leggiXML.trak[i].a.valueOf());
arrSize.push(leggiXML.trak[i].s.valueOf());
arrColor.push(leggiXML.trak[i].c.valueOf());
//trace("for");
//trace(leggiXML.trak[i].x.valueOf());
}
pacchettiX[0]=arrX;
pacchettiY[0]=arrY;
pacchettiS[0]=arrSize;
pacchettiC[0]=arrColor;
pacchettiA[0]=arrAlpha;
trace("pacchetti remoti:");
trace(remoteP);
trace("pacchetti locali:");
trace(localP);
readPack();
}
private function readPack():void {
if(remoteP>localP)
{
leggiDatiPack();
}
else
{
datiOn(localP);
}
}
private function datiOn(n1):void {
n1-1;
arrX=new Array();
arrY=new Array();
arrAlpha=new Array();
arrSize=new Array();
arrColor=new Array();
for(var i=0;i<n1;i++)
{
for(var u=0;u<400;u++)
{
arrX.push(pacchettiX[i][u]);
arrY.push(pacchettiY[i][u]);
arrAlpha.push(pacchettiA[i][u]);
arrSize.push(pacchettiS[i][u]);
arrColor.push(pacchettiC[i][u]);
}
}
trace(pacchettiX[0][1]);
setMyIntervalInit();
}
private function leggiDatiPack():void
{
pack=localP+1;
readUrl=new URLRequest(urlL+randomVar()+varsParams+"&pack="+pack);
try {
readLoad.load(readUrl);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
readLoad.removeEventListener(Event.COMPLETE, loaderCompleteHandler);
readLoad.addEventListener(Event.COMPLETE, loaderCompletePack);
}
private function loaderCompletePack(event:Event):void {
leggiXML=new XML(readLoad.data);
leggiTrak=new XMLList(leggiXML);
arrX=new Array();
arrY=new Array();
arrAlpha=new Array();
arrSize=new Array();
arrColor=new Array();
for(var i=0;i<leggiXML.child("trak").length();i++)
{
arrX.push(leggiXML.trak[i].x.valueOf());
arrY.push(leggiXML.trak[i].y.valueOf());
arrAlpha.push(leggiXML.trak[i].a.valueOf());
arrSize.push(leggiXML.trak[i].s.valueOf());
arrColor.push(leggiXML.trak[i].c.valueOf());
//trace("for");
//trace(leggiXML.trak[i].x.valueOf());
}
pacchettiX[localP]=arrX;
pacchettiY[localP]=arrY;
pacchettiS[localP]=arrSize;
pacchettiC[localP]=arrColor;
pacchettiA[localP]=arrAlpha;
localP+=1;
trace("Pacchetti locali:");
trace(localP);
text1.text=localP+" di "+remoteP;
readPack();
grafite.graphics.clear();
}
/*
private function readNodes():void {
for(var i=0;i<leggiTrak.length;i++)
{
arrX=new Array();
arrY=new Array();
arrAlpha=new Array();
arrSize=new Array();
arrColor=new Array();
arrX.push(leggiXML.track[i].x.valueOf());
arrY.push(leggiXML.track[i].y.valueOf());
arrAlpha.push(leggiXML.track[i].s.valueOf());
arrSize.push(leggiXML.track[i].c.valueOf());
arrColor.push(leggiXML.track[i].a.valueOf());
//trace(arrX.toString());
}
}
*/
private function traceCiao(event:Event):void
{
text1.text="Salvataggio Completato.."+saveUrl.url;
text1.text=saveUrl.url;
text1.x-=200;
//trace("ciaooooo!");
}
private function randomVar():String
{
var num1=Math.floor(10000000*Math.random());
var num2:String="?b=0"+varsParams+"&caso="+num1;
return num2;
}
}
}