⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formlistmenu.as

📁 国外强大的xml相册
💻 AS
字号:
import flash.geom.Rectangle;
//***************************import FormatText class**************************
import pssclasses.*;
//*****************************FormListMenu**************************
import pssclasses.form.*;
class FormListMenu extends MovieClip {
	// **********define attributes*************
	private var __this:MovieClip;
	private var defSize:Number = 150;
	private var listAutoSize:Boolean = false;
	private var isOpen:Boolean = false;
	private var newListValue:Object;
	private var ListValueArray:Array;
	private var NewListValueObj:Object;
	private static var ListMenuInActiv:MovieClip;
	private var myType:String;
	// list values holder
	private var ListValuesHolder:MovieClip;
	// movie inside
	private var listField_mc:MovieClip;
	// in listField_mc
	private var centerC_mc:MovieClip;
	private var leftP_mc:MovieClip;
	private var center_mc:MovieClip;
	// list button
	private var listBut_mc:MovieClip;
	//inside list button
	private var press_mc:MovieClip;
	private var DESABLE:Boolean = true;
	//***************content Rectangle mask****************
	private var contentMask:Rectangle;
	//*****end******content Rectangle mask****************
	// label value
	private var labelValue:String = "Sonettic SlideShow";
	private var menuValue:Object;
	private var defValue:Object;
	// field with menu description
	private var DescTop_txt:TextField;
	private var DescBot_txt:TextField;
	// number list menu
	private var StartNumber:Number;
	private var FinishNumber:Number;
	private var StepNumber:Number;
	//***********define metods***************
	private function FormListMenu() {
		__this = this;
		__this.cacheAsBitmap = true;
	}
	public function desable(des:Boolean):Void {
		DESABLE = des;
		labelValue = _global.skeen;
	}
	//****************load xml*****************
	public function initListMenu(xmlPath:String):Void {
		var THIS:MovieClip = __this;
		var ValuesChildLength:Number;
		var ChildLength:Number;
		var ValuesXML:XML = new XML();
		var valuesListArray:Array = new Array();
		var valueNode:XMLNode;
		ValuesXML.ignoreWhite = true;
		ValuesXML.onLoad = function(success:Boolean) {
			ChildLength = ValuesXML.firstChild.childNodes.length;
			for (var chil = 0; chil<ChildLength; chil++) {
				var values_obj:Object = new Object();
				ValuesChildLength = ValuesXML.firstChild.childNodes[chil].childNodes.length;
				for (var tags = 0; tags<ValuesChildLength; tags++) {
					valueNode = ValuesXML.firstChild.childNodes[chil].childNodes[tags];
					values_obj[valueNode.nodeName] = valueNode.firstChild.nodeValue;
				}
				valuesListArray[chil] = values_obj;
			}
			// set array with values
			THIS.setValuesArray(valuesListArray);
			//build component
			THIS.buildComponent();
			// events
			THIS.setEvents();
		};
		ValuesXML.load(xmlPath);
	}
	//**************************INIT NUMBER list MENU********
	public function initNumberListMenu(startN:Number, finishN:Number, step:Number) {
		StartNumber = startN;
		FinishNumber = finishN;
		StepNumber = step;
		var valuesListArray:Array = new Array();
		var inset:Boolean = true;
		for (var i = StartNumber; i<=FinishNumber; i += StepNumber) {
			var valueObject:Object = new Object();
			if (i>=60 && inset) {
				StepNumber = 20;
				inset = false;
			}
			valueObject.name = i+" sec.";
			valueObject.value = i;
			valuesListArray.push(valueObject);
		}
		// set array with values
		setValuesArray(valuesListArray);
		//build component
		buildComponent();
		// events
		setEvents();
	}
	//***************build list menu**************
	private function buildComponent():Void {
		listField_mc = __this.attachMovie("formListField", "listField_mc", 1);
		listBut_mc = __this.attachMovie("formListMenuBut", "listBut_mc", 2);
		//**************set data for button and label list****
		listField_mc.setComponentHolder(__this);
		listField_mc.setComponentButton(listBut_mc);
		listField_mc.isLabel(true);
		listField_mc.setListSize(defSize);
		listField_mc.setListLabel(labelValue);
		listBut_mc.setComponentHolder(__this);
		listBut_mc.setComponentLabel(listField_mc);
	}
	//*****************set list menu size*************
	public function setListMenuSize(size:Number):Void {
		defSize = size;
		listField_mc.setListSize(defSize);
		listField_mc.setListLabel(labelValue);
	}
	public function setNewValues(newValues:Object):Void {
		NewListValueObj = newValues;
		labelValue = NewListValueObj.name;
		menuValue = NewListValueObj.value;
		listField_mc.setListLabel(labelValue);
		closeList();
		//set value to PSSsetting
		PSSetting.setValue(myType, menuValue);
	}
	//*********************set type menu*********
	public function setType(type:String):Void {
		myType = type;
	}
	public function setDefaultValue(val:Object):Void {
		defValue = val;
	}
	// ******************set values array***********
	public function setValuesArray(valArr:Array):Void {
		ListValueArray = valArr;
		if (defValue == undefined) {
			var valuesObj:Object = ListValueArray[0];
			setNewValues(valuesObj);
		} else {
			var count = ListValueArray.length;
			for (var i = 0; i<count; i++) {
				var valuesObj:Object = ListValueArray[i];
				if (valuesObj.value == defValue) {
					setNewValues(valuesObj);
					break;
				}
			}
		}
	}
	//********************build list values***********
	private function buildValuesList():Void {
		ListValuesHolder = __this.createEmptyMovieClip("listValuesHolder_mc", 0);
		ListValuesHolder._visible = false;
		var newValueField:MovieClip;
		var countValues:Number = ListValueArray.length;
		var listValuesObj:Object;
		var holderPosition:Number;
		var offsetPosition:Number = listField_mc._height;
		var newPosition:Number = 0;
		for (var i = 0; i<countValues; i++) {
			listValuesObj = ListValueArray[i];
			newValueField = ListValuesHolder.attachMovie("formListField", "formListField"+i, i);
			newValueField._y = newPosition-1;
			newValueField.setComponentHolder(__this);
			newValueField.setListSize(defSize);
			newValueField.setFieldValue(listValuesObj);
			newValueField.setListLabel(listValuesObj.name);
			// set new position
			newPosition += offsetPosition-1;
		}
		ListValuesHolder.cacheAsBitmap = true;
		ListValuesHolder._y = 0-ListValuesHolder._height;
		createContentMask(defSize+listBut_mc._width, ListValuesHolder._height+offsetPosition);
		ListValuesHolder._visible = true;
		ListValuesHolder.onEnterFrame = function() {
			this._y += Math.round((offsetPosition-this._y)/2);
			if (this._y == offsetPosition) {
				delete this.onEnterFrame;
			}
		};
	}
	//*****************destroy List value**************
	private function destroyValuesList():Void {
		var hidePosition:Number = 0-ListValuesHolder._height;
		ListValuesHolder.onEnterFrame = function() {
			this._y += Math.floor((hidePosition-this._y)/2);
			if (this._y == hidePosition) {
				delete this.onEnterFrame;
				delete contentMask;
			}
		};
	}
	//***************content Rectangle mask****************
	private function createContentMask(_w:Number, _h:Number):Void {
		contentMask = new Rectangle(0, 0, _w, _h);
		__this.scrollRect = contentMask;
	}
	private function setContentMaskSize(_w:Number, _h:Number):Void {
		contentMask.width = _w;
		contentMask.height = _h;
		__this.scrollRect = contentMask;
	}
	//****end********content Rectangle mask****************
	//**********************open list************
	private function openList():Void {
		isOpen = true;
		listField_mc.activ();
		listBut_mc.activ();
		// fields with values
		buildValuesList();
		// **close list*************
		var THIS:MovieClip = __this;
		_root.onMouseDown = function():Void  {
			if (THIS.isOpen && !THIS.hitTest(_root._xmouse, _root._ymouse)) {
				THIS.closeList();
			}
		};
	}
	private function closeList():Void {
		isOpen = false;
		listField_mc.pasiv();
		listBut_mc.pasiv();
		destroyValuesList();
		delete _root.onMouseDown;
	}
	//**********************events****************
	private function setEvents():Void {
		if (DESABLE) {
			var THIS:MovieClip = __this;
			listField_mc.onPress = function() {
				if (!THIS.isOpen) {
					THIS.openList();
				} else {
					THIS.closeList();
				}
			};
			listBut_mc.onPress = function() {
				if (THIS != ListMenuInActiv) {
					ListMenuInActiv.closeList();
					ListMenuInActiv = THIS;
				}
				if (!THIS.isOpen) {
					THIS.openList();
				} else {
					THIS.closeList();
				}
			};
			listBut_mc.onReleaseOutside = listField_mc.onReleaseOutside=function ():Void {
				THIS.closeList();
			};
		}
	}
	//*****************Label field*****************
	public function setMenuDescriptionField(top:TextField, bot:TextField):Void {
		DescTop_txt = top;
		DescBot_txt = bot;
	}
	//*************end class**********
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -