Показать сообщение отдельно
Старый 24.01.2011, 03:27
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Имеем класс кнопки состоящий из 4 кадров, на каждом по картинке, где от того какой инстанс выбран на данный момент сохраняется перменная SELECTED.
Код AS3:
package classes 
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	/**
	 * ...
	 * @author in4core
	 */
	public class MenuBtnMain extends MovieClip 
	{
		public static var SELECTED:String = '';
		public var NAME;
 
 
 
		public function MenuBtnMain() 
		{
 
			this.buttonMode = true;
			this.addEventListener(MouseEvent.CLICK, onClick);
		}
 
		private function onClick(e:MouseEvent):void 
		{
			e.currentTarget._bg.gotoAndStop(2);
			SELECTED = this.NAME;
 
		}
		public function setNameByFrame() {
 
			switch(this.currentFrame) {
				case 1:
				NAME = 'box';
 
 
				break;
				case 2:
				NAME = 'paket';
 
 
				break;
				case 3:
				NAME = 'otk_1';
 
 
				break;
				case 4:
				NAME = 'otk_2';
 
 
				break;
			}
		}	
}
Далее показываю только одну функцию из Main нужную нам
где от того какая кнопка выбрана на данный момент происходят действия с mainMC
Код AS3:
private function onClick(e:MouseEvent):void 
		{
 
				mainMC = new BG2();
				addChild(mainMC);
				mainMC.x -= 12;
				mainMC.y -= 35;
				mainMC.setLocation(MenuBtnMain.SELECTED);
 
			}
		}
Ну и стоит показать сам mainMC соотв

Код AS3:
public function setLocation(loc:String):void {
			var pat:Patterns = new Patterns();
			addChild(pat);
			pat.x = 20;
			pat.y = 47;
 
			switch(loc) {
				case 'box':
				pat.gotoAndStop(1);
				break;
				case 'paket':
				pat.gotoAndStop(2);
				break;
				case 'otk_1':
				pat.gotoAndStop(3);
				break;
				case 'otk_2':
				pat.gotoAndStop(4);
				break;
			}
 
		}
Данный пример конечно не раскрывает всю суть вопроса, но он более менее ее объясняет, сдесь конечно кадры кнопки равны кадрам pat , поэтому можно тупо сохранять номер кадра а не название, а вот если они не то что не равны, а даже не подчиняются мат законам, тогда вот такую конструкцию приходится делать полюбому, или нет?! Надеюсь так понятнее