header
ask question
Click here to ask Question Now Its free No registration required. Flash, Flex, Flash Media Server, ActionScript,Adobe Air. Most questions receive a response in an hour.
sandy
Points:0
Posts:0

7/28/2010 9:58:58 PM

Title: convert the code as2 to as3


can anybody help me to convet the following code from as2 to as3. plz help me



boxMc._visible = false;
var obj:MovieClip;
var obj1:MovieClip;
var obj2:MovieClip;
var curr_mc:MovieClip;
var xmlArr:Array = new Array();
var currentIntractive:Number = 0;
var totalIntractive:Number = 0;
var maxX:Number = 0;
var startX:Number = 0;
var startY:Number = 0;
var xPos:Number = 0;
var yPos:Number = 0;
var stageHeight:Number = 0;
var stageWidth:Number = 0;
var partWidth:Array = new Array();
//
var alignTab:Boolean = true;
//
var titleColor:Number = 0x990000;
var subTxtColor:Number = 0x000000;
var wrongColor:Number = 0xFF0000;
var rightColor:Number = 0x33FF00;
var showColor:Number = 0x33FF00;
var txtFormat:TextFormat = new TextFormat();
//
var resultFormat:TextFormat = new TextFormat();
resultFormat.bold = true;
resultFormat.color = 0xFF;
var intrID:Number = 0;
//
function startActivity(arr:Array):Void {
	xmlArr = arr;
	totalIntractive = arr.length;
	createIntractive(arr);
	showIntractive(currentIntractive);
}
function createIntractive(arr:Array) {
	var objArr:Array;
	for (var i = 0; i<arr.length; i++) {
		obj = boxMc.duplicateMovieClip("part"+i, i, {_x:10});

		obj.lineMcArr = [];
		obj.intrFocs = [];
		objArr = arr[i].objArr;
		maxX = 0;
		alignTab = (objArr[0].title == "-");
		for (var j = 0; j<objArr.length; j++) {
			if (objArr[j].title != "insertLine") {
				obj1 = obj.dynBox.duplicateMovieClip("title"+j, j, {_y:j*22});

				obj1.txt.autoSize = true;
				obj1.txt.text = checkHypen(objArr[j].title);
				txtFormat.color = subTxtColor;
				//txtFormat.bold = true;
				obj1.txt.setTextFormat(txtFormat);
				if (objArr[j].lineDetails[0].type == "skip") {
					objArr[j].lineDetails[0].type = "true";
				} else {
					maxX = assignHigh(maxX, obj1.txt._width);
				}
			} else {
				obj1 = obj.lineMc.duplicateMovieClip("title"+j, j, {_y:j*22});
				obj1._x += 8;
				obj.lineMcArr.push(obj1);
			}
			obj1._alpha = 100;
		}
		var count1:Number = 0;
		var count2:Number = 0;
		var count3:Number = 0;
		for (var j = 0; j<objArr.length; j++) {
			if (objArr[j].lineDetails.length>0) {
				lineArr = objArr[j].lineDetails;
				for (var k = 0; k<lineArr.length; k++) {
					if (lineArr[k].type == "true") {
						obj1 = obj.dynBox.duplicateMovieClip("static"+count1++, obj.getNextHighestDepth(), {_y:j*22});
						obj1.txt.autoSize = true;
						obj1.txt.text = checkHypen(lineArr[k].value);
						if (objArr[j].title == "-") {
							txtFormat.color = titleColor;
							//txtFormat.bold = true;
							obj1.txt.setTextFormat(txtFormat);
						}
					} else if (lineArr[k].type == "false") {
						if (lineArr[k].value.indexOf("&TOG") == -1) {
							obj1 = obj.inpBox.duplicateMovieClip("input"+count2++, obj.getNextHighestDepth(), {_y:j*22});
							obj1.ans = lineArr[k].value;
							obj1.decimal = lineArr[k].decimal || 0;
							obj1.txt.maxChars = lineArr[k].value.length;
							obj1.txt.autoSize = true;
							obj1.txt.autoSize = false;
							obj1.txt.restrict = "0-9.\\-";
							obj1.bg._width = 20+lineArr[k].value.length*4.5;
							obj1.txt._width = 20+lineArr[k].value.length*5-5;
							obj1.txt.text = "";
							if (lineArr[k].unit != undefined) {
								obj1.unit._x = obj1.bg._width-10;
								obj1.unit.text = lineArr[k].unit;
							}
							obj1.txt.onChanged = function() {
								chkSubmitEnable();
							};
							obj1.txt.onKillFocus = function() {
								if (this._parent.decimal == 0) {
									var noStr:String = String(parseFloat(this.text));
									if (noStr.length<this.maxChars) {
										noOfZero = this.maxChars-noStr.length;
										while (noOfZero-->0) {
											noStr = "0"+noStr;
										}
									}
									this.text = isNaN(noStr) ? "" : noStr;
								} else {
									var noStr:String = String(parseFloat(this.text));

									if (noStr.indexOf(".") == -1) {
										noStr += ".";
									}
									if (noStr.length<this.maxChars) {
										noOfZero = this.maxChars-noStr.length;
										while (noOfZero-->0) {
											noStr += "0";
										}
									}
									if (noStr.substr(-1) == ".") {
										noStr = noStr.substr(0, -1);
									}
									this.text = isNaN(noStr) ? "" : noStr;
								}
							};
						} else {
							obj1 = obj.togBtn.duplicateMovieClip("toggle"+count3++, obj.getNextHighestDepth(), {_y:j*22});
							obj1.str = lineArr[k].value;
						}
						obj.intrFocs.push(obj1);
					} else if (lineArr[k].type == "result") {
						obj1 = obj.dynBox.duplicateMovieClip("result1", obj.getNextHighestDepth(), {_y:j*22});
						obj1.txt.text = lineArr[k].value;
						obj1.txt.autoSize = true;
						obj1.txt.setTextFormat(resultFormat);
					}
					//                                                                  
					if (alignTab) {
						obj1._x = 10+maxX+40*k;
					} else {
						if (k == 0) {
							obj1._x = 10+maxX;
						} else {
							if (obj1.str != undefined) {
								obj1.bgAl._width = obj1.str.length*5;
							}
							obj1._x = obj2._x+obj2._width+5;
						}
						obj2 = obj1;
					}
					obj1._alpha = 100;
				}
			}
		}
		obj.intractive = [count1, count2, count3];
		obj.bgBox._height = obj._height+10;
		obj.bgBox._width = obj._width+10;
		obj.bgBox._alpha = 100;
	}
	maxX = 0;
	var partCount:Number = 0;
	for (var i = 0; i<arr.length; i++) {
		obj = this["part"+(i-1)];
		obj1 = this["part"+i];
		yPos = (obj._y+obj._height) || startY;
		obj1._visible = true;
		if ((yPos+obj1._height)>stageHeight) {
			partCount++;
			xPos += maxX+partSpacing;
			maxX = obj1._width;
			yPos = startY;
		}
		obj1.partId = partCount;
		obj1._y = yPos+partSpacing;
		obj1._x = xPos+partSpacing;
		maxX = assignHigh(maxX, obj1._width);
		partWidth[partCount] = maxX;
	}
	for (var i = 0; i<arr.length; i++) {
		obj = this["part"+i];
		if (obj.partId == 2) {
			obj.bgBox._width = stageWidth-obj._x-startX-5-partSpacing;
		} else {
			obj.bgBox._width = partWidth[obj.partId];
		}
		for (var j = 0; j<obj.lineMcArr.length; j++) {
			obj.lineMcArr[j]._width = partWidth[obj.partId]-22;
		}
		obj._visible = false;
	}
	bgBorder._x = startX+5;
	bgBorder._y = startY-5;
	bgBorder._width = stageWidth-30;
	bgBorder._height = stageHeight-startY+20;
}
function showIntractive(id) {
	obj1 = this["part"+id];
	obj1._visible = true;
	if ((obj1._y+obj1._height+subBtn._height)>stageHeight) {
		subBtn._x = obj1._x+obj1._width-5;
		subBtn._y = obj1._y+obj1._height-subBtn._height-5;
	} else {
		subBtn._x = obj1._x+obj1._width-subBtn._width-5;
		subBtn._y = obj1._y+obj1._height-5;
	}
	enable(subBtn,false);
	if (setAction(obj1)) {
		subBtn._x = -100;
		setTxtFocusProxy = null;
	}
}
function enable(obj, st) {
	subBtn.gotoAndStop(1);
	obj._alpha = 50+50*st;
	obj.enabled = st;
}
function checkHypen(str:String) {
	if (str == "-") {
		return ("");
	}
	return (str);
}
function assignHigh(val1:Number, val2:Number) {
	if (val1>val2) {
		return (val1);
	}
	return (val2);
}
//subBtn._focusrect = false;
subBtn.onRelease = function() {
	setTxtFocusProxy = null;
	Selection.setFocus(null);
	for (var i = 0; i<curr_mc.intractive[1]; i++) {
		//txtFormat.bold = false;
		if (curr_mc["input"+i].txt.text == curr_mc["input"+i].ans) {
			txtFormat.color = rightColor;
		} else {
			txtFormat.color = wrongColor;
		}
		curr_mc["input"+i].txt.setTextFormat(txtFormat);
		curr_mc["input"+i].txt.selectable = false;
	}
	for (var i = 0; i<curr_mc.intractive[2]; i++) {
		if (curr_mc["toggle"+i].txt.text == curr_mc["toggle"+i].ans) {
			txtFormat.color = rightColor;
		} else {
			txtFormat.color = wrongColor;
		}
		curr_mc["toggle"+i].txt.setTextFormat(txtFormat);
		curr_mc["toggle"+i].enabled = false;
		curr_mc["toggle"+i].txt.selectable = false;
		//curr_mc["toggle"+i].btn1.enabled = false;
		//curr_mc["toggle"+i].btn2.enabled = false;
	}
	intrID = setInterval(showAns, 500);
	enable(subBtn,false);
};
function showAns() {
	for (var i = 0; i<curr_mc.intractive[1]; i++) {
		if (curr_mc["input"+i].txt.text != curr_mc["input"+i].ans) {
			txtFormat.color = showColor;
			curr_mc["input"+i].txt.text = curr_mc["input"+i].ans;
			curr_mc["input"+i].txt.setTextFormat(txtFormat);
			return ("khhk");
		}
	}
	for (var i = 0; i<curr_mc.intractive[2]; i++) {
		if (curr_mc["toggle"+i].txt.text != curr_mc["toggle"+i].ans) {
			txtFormat.color = showColor;
			curr_mc["toggle"+i].txt.text = curr_mc["toggle"+i].ans;
			curr_mc["toggle"+i].txt.setTextFormat(txtFormat);
			return ("khhk");
		}
	}
	clearInterval(intrID);
	startNext();
}
function startNext() {
	currentIntractive++;
	if (currentIntractive<totalIntractive) {
				showIntractive(currentIntractive);
		trace("Your r on next question "+currentIntractive+"   "+totalIntractive);
		trace(xmlArr[currentIntractive].objArr[0].title);

		if (xmlArr[currentIntractive].objArr[0].title == "RESULT") {
			trace("end of the activity");
			_level0.play();
		}

	} else {
		trace("end of the activity");

		showResult();
		/*
		if (_parent._parent._parent._parent != undefined) {
		_parent._parent._parent._parent.play();
		} else if (_parent._parent._parent != undefined) {
		_parent._parent._parent.play();
		} else if (_parent._parent != undefined) {
		_parent._parent.play();
		} else {
		_parent.play();
		}
		*/

		trace("activitity Ended");

		_level0.play();
	}
	setTxtFocusProxy = setTxtFocus;
}
function showResult() {
	trace("Result is given for U");
	subBtn._x = -100;
	resultMc.txt.autoSize = true;
	resultMc.txt.text = resultStr;
	resultMc._width = resultMc._x=(stageWidth-resultMc._width)/2;
	resultMc._y = stageHeight;
}
function setAction(obj:MovieClip):Boolean {
	curr_mc = obj;
	//Selection.setFocus(curr_mc.input0.txt);
	if (curr_mc.intrFocs[0].btn1 == undefined) {
		Selection.setFocus(curr_mc.intrFocs[0].txt);
	} else {

		Selection.setFocus(curr_mc.intrFocs[0]);
	}
	return ((curr_mc.intrFocs.length == 0));
}
function setTxtFocus() {
	var i:Number;
	var currMc:MovieClip = eval(Selection.getFocus());
	for (i=0; i<curr_mc.intrFocs.length; i++) {
		if ((curr_mc.intrFocs[i] == currMc._parent) || (curr_mc.intrFocs[i] == currMc)) {
			i++;
			break;
		}
	}
	if (i>=curr_mc.intrFocs.length) {
		i = 0;
	}
	if (subBtn.enabled) {
		Selection.setFocus(subBtn);
	} else {
		if (curr_mc.intrFocs[i].btn1 == undefined) {
			Selection.setFocus(curr_mc.intrFocs[i].txt);
		} else {
			/*if (curr_mc.intrFocs[i].txt.text == curr_mc.intrFocs[i].txt1.text) {
			Selection.setFocus(curr_mc.intrFocs[i].btn2);
			} else {
			Selection.setFocus(curr_mc.intrFocs[i].btn1);
			}*/
			Selection.setFocus(curr_mc.intrFocs[i]);
		}
	}
}
setTxtFocusProxy = setTxtFocus;
function chkSubmitEnable() {
	var currNo1:Number = curr_mc.intractive[1];
	var currNo2:Number = curr_mc.intractive[2];
	for (var i = 0; i<currNo1; i++) {
		if (curr_mc["input"+i].txt.text == "") {
			break;
		}
	}
	for (var j = 0; j<currNo2; j++) {
		if (curr_mc["toggle"+j].txt.text == "") {
			break;
		}
	}
	enable(subBtn,(i>=currNo1) && (j>=currNo2));
}

function resetOldData() {
	boxMc._visible = false;
	xmlArr = [];
	currentIntractive = 0;
	totalIntractive = 0;
	maxX = 0;
	startX = 0;
	startY = 0;
	xPos = 0;
	yPos = 0;
	stageHeight = 0;
	stageWidth = 0;
	partWidth = [];
	partSpacing = 5;
	//
	intrID = 0;
	for (var i = 0; i<=this.getNextHighestDepth(); i++) {
		this.getInstanceAtDepth(i).removeMovieClip();
	}
}

//for xml generation

var xmlFile:XML = new XML();
xmlFile.ignoreWhite = true;
var resultStr:String;
xmlFile.onLoad = function(suc:Boolean):Void  {
	if (suc) {
		var xmlArr:Array = xmlToObject(xmlFile);
		startActivity(xmlArr);
	} else {
		trace("Loading ... Error");
	}
};
function startFun(path) {
	resetOldData();
	xmlFile.load(path);
}
//xmlFile.load("ex1.xml");
//
function xmlToObject(xmlFile:XML):Array {
	var xmlArr:Array = new Array();
	var objArr:Array = new Array();
	var lineDetails:Array = new Array();
	resultStr = xmlFile.firstChild.attributes.result;
	for (var xmlNode = xmlFile.firstChild.firstChild; xmlNode != null; xmlNode=xmlNode.nextSibling) {
		objArr = [];
		for (var xmlSubNode = xmlNode.firstChild; xmlSubNode != null; xmlSubNode=xmlSubNode.nextSibling) {
			lineDetails = [];
			for (var xmlLastNode = xmlSubNode.firstChild; xmlLastNode != null; xmlLastNode=xmlLastNode.nextSibling) {
				lineDetails.push({value:xmlLastNode.firstChild.nodeValue, unit:chkSec(xmlLastNode.attributes.unit), type:xmlLastNode.attributes.showvalue, decimal:xmlLastNode.attributes.decimal});
			}
			objArr.push({title:chkLtGt(xmlSubNode.attributes.title), lineDetails:lineDetails});
		}
		xmlArr.push({id:Number(xmlNode.attributes.id), objArr:objArr});
	}
	startX = parseFloat(xmlFile.firstChild.attributes.startX);
	startY = parseFloat(xmlFile.firstChild.attributes.startY);
	xPos = startX+10;
	yPos = startY;
	stageHeight = parseFloat(xmlFile.firstChild.attributes.height);
	stageWidth = parseFloat(xmlFile.firstChild.attributes.width);
	//
	xmlArr.sortOn("id",Array.NUMERIC);
	return (xmlArr);
}
function chkLtGt(str:String):String {
	var index:Number = str.indexOf("&gm;");
	while (index != -1) {
		str = str.substr(0, index)+"?"+str.substr(index+4);
		index = str.indexOf("&gm;");
	}
	index = str.indexOf("&st;");
	while (index != -1) {
		str = str.substr(0, index)+"?"+str.substr(index+4);
		index = str.indexOf("&st;");
	}
	return (str);
}
function chkSec(str:String):String {
	if (str == undefined) {
		return ("");
	}
	var index:Number = str.indexOf("&sec;");
	while (index != -1) {
		str = str.substr(0, index)+"\""+str.substr(index+5);
		index = str.indexOf("&sec;");
	}
	return (str);
}



1
Veer
Points: 430
Posts:0
7/28/2010 10:59:04 PM



Hey Sandy,

To convert code form AS2 to AS3, no direct tool available which can 100% convert.

Now to convert this code manually, you need to explain what code exactly doing or requirement of code.

As per my understanding AS3 is more easy and powerful than AS2 to do code from scratch once the task or requirement is clear to you.

So once requirement or task is clear than one can do easily or one can help you.

Regards,
Virat Patel

2
sandy
Points: 0
Posts:0
7/29/2010 12:17:44 AM



hey Virat Patel ,

its a code for generating box containing the textbox with xml. i put a rar file in a my blog. download it. in this rar file the file sma_coc3_pn_azimuth_amplitude is demo file. in this file there is load an external swf file(sma_coc3_pn_example_new) with some yellow border calculation box and text boxes in the main swf file(sma_coc3_pn_azimuth_amplitude). plz help me you download from the link and convert as2 to as3 for the file sma_coc3_pn_example_new:

http://www.box.net/shared/lshea1kff1

regards sandy


Post your Reply
Name  

Email

Type your Reply or Answer

Are you human? What is 4+4 



Members Login

Email  
Password
Forgot Password





This website focus on: Flash | Flex | FMS | RED5 | WOWZA | Flash Media Server | Adobe AIR | ActionScript,Flash Solutions | Flash Question | Flash Answers | Flash Developers | Flash Problem, Flash Help, Flash bugs, Flash workaround | Flash Blog | Flex Question Answers | Flash Forum | Flex Development | Actionscript development | Flash development | Adobe AIR development
Copyright © 2008 AskMeFlash.com. All rights reserved. Privacy Policy | Terms & Conditions