Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.11.2011, 03:06
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 81  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Если кляксу может заметить и понять, что это клякса, только тот, кто её специально ищет, то это не клякса, а сэкономил время. Нет даже стандарта, про который можно сказать, что он нарушен!
У SimpleButton нет фич, без которых просто никак иногда, например состояние "disabled". Это осложняет жизнь использующему её. Неиспользование stage таких недостатков не имеет.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 14.11.2011, 09:25
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 82  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Вот класс для создания и удаления кнопок.
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.display.Stage;
	import flash.events.MouseEvent;
	public class Cbutton extends MovieClip {
		private var _bDown:Boolean=false;
		private var _oDownButon:Object=new Object  ;
		public function Cbutton(But,x:int,y:int) {
			// constructor code
			onButtonCreate(But,x,y);
		}
		private function onButtonCreate(But,x:int,y:int):void {
			addChild(But);
			But.stop();
			But.x=x;
			But.y=y;
			But.addEventListener(MouseEvent.MOUSE_OVER, onMouseEvent);
			But.addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent);
			But.addEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent);
		}
		internal function onButtonDelete(But:MovieClip):void {
			But.removeEventListener(MouseEvent.MOUSE_OVER, onMouseEvent);
			But.removeEventListener(MouseEvent.MOUSE_OUT, onMouseEvent);
			But.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent);
			removeChild(But);
		}
		private function onMouseEvent(event:MouseEvent):void {
			switch (event.type) {
				case MouseEvent.MOUSE_OVER :
					if (_bDown&&_oDownButon==event.target) {
						_oDownButon.gotoAndStop(3);
					} else {
						event.target.gotoAndStop(2);
					}
					break;
				case MouseEvent.MOUSE_OUT :
					event.target.gotoAndStop(1);
					break;
				case MouseEvent.MOUSE_DOWN :
					stage.addEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
					_oDownButon=event.target;
					event.target.gotoAndStop(3);
					_bDown=true;
					break;
				case MouseEvent.MOUSE_UP :
					if (!(event.target is Stage)) {
						event.target.gotoAndStop(2);
					}
					stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseEvent);
					_bDown=false;
					break;
			}
		}
	}
 
}
А здесь, вызов класса.
Код AS3:
package {
	import flash.display.MovieClip;
	import flash.display.Sprite;
	public class CLButton extends MovieClip {
		private var sClip:Sprite=new Sprite  ;
		private var _mcButton0:mcButton=new mcButton  ;
		private var _mcButton1:mcButton1=new mcButton1  ;
		private var _mcButton2:mcButton=new mcButton  ;
		private var _mcButton3:mcButton1=new mcButton1  ;;
		var _Cbutton0:Cbutton=new Cbutton(_mcButton0,0,0);
		var _Cbutton1:Cbutton=new Cbutton(_mcButton1,100,0);
		var _Cbutton2:Cbutton=new Cbutton(_mcButton2,100,100);
		var _Cbutton3:Cbutton=new Cbutton(_mcButton3,0,100);
		public function CLButton() {
			// constructor code
			addChild(sClip);
			sClip.x=100;
			sClip.y=100;
			_Cbutton0.buttonMode=true;
			sClip.addChild(_Cbutton0);
			sClip.addChild(_Cbutton1);
			sClip.addChild(_Cbutton2);
			sClip.addChild(_Cbutton3);
 
			_Cbutton0.onButtonDelete(_mcButton0);
			//_Cbutton1.onButtonDelete(_mcButton1);
		}
	}
 
}
__________________
Книги и желание лучшие учителя.


Последний раз редактировалось Vektor; 14.11.2011 в 09:46.
Старый 14.11.2011, 15:07
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 83  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
9 страниц для темы не во флейме - это угар
__________________
Марк Tween

Старый 14.11.2011, 20:54
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 84  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
только что рисовал кнопку потомок симплбаттона вот вам образец класса:
Код AS3:
package core
{
	import flash.display.*;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.*;
	import flash.filters.*;
 
 
	public class Moduli_menu_btn extends SimpleButton
	{
		private var btnlabel:String;
		private const color:uint = 0x6D8FB3;
		private const colorText:uint = 0xF7F7F7;
		private const btnWigth:Number = 190;
		private const btnHeight:Number = 35;
		private var myFilters:Array;
 
		public function Moduli_menu_btn(btnlabel:String)
		{
			this.width = btnWigth + 5;
			this.height = btnHeight + 5;
			this.btnlabel = btnlabel;
			    this.upState = drawBtnUp ();
				this.overState = drawBtnOver ();
				this.downState = drawBtnOver ();
				this.hitTestState = drawBtnOver ();
 
		}
		private function btnTextField ():TextField
		{
			var t:TextFormat = new TextFormat ("Calibri", 20, colorText, true);
			t.align = TextFormatAlign.CENTER; 
			var btntext:TextField = new TextField ();
			btntext.selectable = false;
			btntext.text = btnlabel;
			btntext.setTextFormat (t);
			btntext.y = 3;
			btntext.x = (btnWigth - btntext.width)/2;
			return btntext;
		}
		private function drawBtnUp ():Sprite
		{
			var bgUp:Sprite = new Sprite ();
			bgUp.graphics.lineStyle (2, color);
			bgUp.graphics.beginFill (color);
			bgUp.graphics.drawRoundRect (0, 0, btnWigth, btnHeight, 3, 3);
			bgUp.graphics.endFill ();
			var text:TextField = btnTextField ();
			bgUp.addChild (text);
			return bgUp;
		}
		private function drawBtnOver ():Sprite
		{
			var bgOver:Sprite = drawBtnUp ();
			myFilters = new Array();
			//myFilters.push(new GlowFilter(0xDAE1E8, 3, 18, 18));
			myFilters.push(new DropShadowFilter ());
			bgOver.filters = myFilters;
			return bgOver;
 
		}
 
	}
 
}
делайте так, и не трахайте мозг кадрами. Если надо в разных состояниях кнопки добавлять разный текст, помещайте его на спрайты в соответствующих функциях.

Добавлено через 1 минуту
Цитата:
Сообщение от -De- Посмотреть сообщение
У SimpleButton нет фич, без которых просто никак иногда, например состояние "disabled". Это осложняет жизнь использующему её. Неиспользование stage таких недостатков не имеет.
Нету??? А свойство enabled не пойдет???

Старый 14.11.2011, 21:22
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 85  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Как оно может "пойти", если нельзя задать соответствующее отображение?
__________________
Reality.getBounds(this);

Старый 14.11.2011, 21:36
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 86  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
А это другое дело, хотя я лично просто создаю функцию такого типа:
Код AS3:
public function setIsChosen (chosen:Boolean):void
		{
			this._isChosen = chosen;
			if (this._isChosen)
			{
				this.upState = drawIsChosen ();
				this.overState = drawIsChosen ();
				this.downState = drawIsChosen ();
				this.hitTestState = drawIsChosen ();
			}
			else
			{
				this.upState = drawStateUp ();
				this.overState = drawStateOver ();
				this.downState = drawStateOver ();
				this.hitTestState = drawStateOver ();
			}
 
		}
и делаю с кнопкой все что угодно

Старый 15.11.2011, 08:31
Vektor вне форума Посмотреть профиль Отправить личное сообщение для Vektor Найти все сообщения от Vektor
  № 87  
Ответить с цитированием
Vektor
 
Аватар для Vektor

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Цитата:
делайте так, и не трахайте мозг кадрами
Я не понял, а художник должен кодом, кнопки рисовать?
__________________
Книги и желание лучшие учителя.

Старый 15.11.2011, 14:46
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 88  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Vektor, это сообщение было написано в разделе для художников? Автор к художникам обращался?))
__________________
Reality.getBounds(this);

Старый 16.11.2011, 00:35
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 89  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Цитата:
Сообщение от Vektor Посмотреть сообщение
Я не понял, а художник должен кодом, кнопки рисовать?
А что вам мешает нарисовать картинку, экспортировать её в AS, создать её объект, и присвоить её нужному вам состоянию кнопки? Это к вопросу о рисовании. Так можно и анимированные состояния кнопок делать, присвоить каждому состоянию свой мувиклип и все.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:46.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.