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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.07.2006, 20:06
ir73 вне форума Посмотреть профиль Отправить личное сообщение для ir73 Найти все сообщения от ir73
  № 11  
Ответить с цитированием
ir73
FD Team

блогер
Регистрация: Dec 2005
Сообщений: 365
Записей в блоге: 6
Код:
myButton.onRelease = function () {
    trace(this._name);
}

Старый 29.07.2006, 20:06
ir73 вне форума Посмотреть профиль Отправить личное сообщение для ir73 Найти все сообщения от ir73
  № 12  
Ответить с цитированием
ir73
FD Team

блогер
Регистрация: Dec 2005
Сообщений: 365
Записей в блоге: 6
ого : )

Старый 29.07.2006, 20:10
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 13  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
Цитата:
Сообщение от ir73
ого : )
не))) ну тут по другому кнопка названа

xenOnn
Надеюсь, что получив имя кнопки (или мувика), ты сможешь сам поместить его в текстовое поле или же загрузить одноименный клип. Иначе зачем это все.


Последний раз редактировалось Что такое хорошо?; 29.07.2006 в 20:13.
Старый 29.07.2006, 20:49
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 14  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
ясно
но кнопок таких много, скажем к примеру 100
не повторять же этот код 100 раз подряд
как сделать так как писал sergMX, но если имена объектов будут иметь совершенно разные имена?

Вот что получается:
Код:
for (i=0; i<9; i++) {
this["item"+i].X = i;
this["item"+i].onRelease = function() {
state.text = this._name;
};
}
Все работает если имена кнопок имеют простые имена: item1, item2, item3....
А вот если имена кнопок будут: green, red, small, big, square, rect...
То как быть тут?
__________________
see you later

Старый 29.07.2006, 21:04
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 15  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
т.е. как мне вписать сыбытие state.text = this._name; в onRelease чтоб всё работало, если имена кнопок имеют произвольные имена?
__________________
see you later


Последний раз редактировалось xenOnn; 29.07.2006 в 21:10.
Старый 30.07.2006, 04:29
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 16  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Цитата:
Сообщение от xenOnn
а как быть если имена инстансов не item1, item2...
а что-то вроде этого: item1, button2, circlew
как в тамом случае быть? тут цикл-то не поможет...
3 варианта:
- внести все названия в массив и выбирать по индексу.
- сделать вызываемую функцию методом мувиклипа\кнопки, зависит, что используется.
- создать свой класс с набором нужных функций и использовать на месте кнопок\мувиков объекты своего класса.
Последний - самый правильный и универсальный.
__________________
Hell is the possibility of sanity

Старый 30.07.2006, 23:56
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 17  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
отлично, так я и думал
дело в том что кнопок много, а событие хотелось бы иметь одно (для удобства)
т.е.
как мне записать событие onRelease, чтоб при нажатии любой кнопки запускался примерно такой код:
Код:
state.text = this._name
__________________
see you later

Старый 31.07.2006, 08:05
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 18  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код для флешки, создает инстанс кнопки вашего класса и текстовое поле, куда нужно выводить инфу о нажатой кнопке.
Код:
var _l1:MyBtn = new MyBtn("cust_btn", this);
_root.createTextField("state_txt", 100, 0, 0, 100, 20);
with(state_txt){
	text = "status";
}
Код для MyBtn.as (поместить в ту же папку с флешкой). Класс с уже прописанной функцией онРелиз.
Код:
class MyBtn extends MovieClip {
	public var ID:String = ""; //как будет называться наш инстанс
	public var innerMC:MovieClip; //куда его ставить
	private var inner_MC:MovieClip; //внутренняя переменная которая и содержит всю графику нашей "кнопки"
	function MyBtn(ID:String, innerMC:MovieClip) {
		inner_MC = innerMC.createEmptyMovieClip("clp"+ID, this.getNextHighestDepth());
		inner_MC.beginFill(0x00ff00, 100); //пример програмного рисования - создания кнопки
		inner_MC.moveTo(20, 20);
		inner_MC.lineTo(20, 120);
		inner_MC.lineTo(120, 120);
		inner_MC.lineTo(120, 20);
		inner_MC.lineTo(20, 20);
		inner_MC.endFill();
		inner_MC.ID = ID;
		inner_MC.attachMovie(ID, ID+"_mc", this.getNextHighestDepth(), {_x:40, _y:40});//пример работы аттача
		inner_MC.onRelease = function() {//собсна, нужная ф-ция
			_root.state_txt.text = this.ID;
		};
	}
	public function getID():String {
		return ID;
	}
	public function setID(arg:String):Void {
		ID = arg;
	}
}
* чтобы все работало нужно в библиотеке создать клип с идентификатором экспорта "cust_btn".
По сути делает то же самое что и аттачМуви, просто сразу же добавляет функцию в онРелиз...
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 31.07.2006 в 08:11.
Старый 31.07.2006, 16:44
xenOnn вне форума Посмотреть профиль Отправить личное сообщение для xenOnn Посетить домашнюю страницу xenOnn Найти все сообщения от xenOnn
  № 19  
Ответить с цитированием
xenOnn

Регистрация: Oct 2003
Адрес: Москва, Россия
Сообщений: 28
Отправить сообщение для xenOnn с помощью ICQ
Совершенно не разобрался в коде, но спасибо
__________________
see you later

Старый 31.07.2006, 18:31
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 20  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
http://www.newgrounds.com/bbs/topic.php?id=339781
^__тут можно почитать (английский вроде не сложный)

Код:
CustBtn = new Object();
CustBtn.prototype = new MovieClip();
CustBtn.prototype.onRelease = function() {
	_root._l2.text = this._name;
};
var _l1:MovieClip = _root.createEmptyMovieClip("test_mc", 0);
_l1.beginFill(0x00ff00, 100);
_l1.moveTo(20, 20);
_l1.lineTo(20, 120);
_l1.lineTo(120, 120);
_l1.lineTo(120, 20);
_l1.lineTo(20, 20);
_l1.endFill();
_l1.__proto__ = CustBtn.prototype;
var _l3:MovieClip = _root.createEmptyMovieClip("test1_mc", 20);
_l3.beginFill(0x00ffff, 100);
_l3.moveTo(170, 170);
_l3.lineTo(170, 270);
_l3.lineTo(270, 270);
_l3.lineTo(270, 170);
_l3.lineTo(170, 170);
_l3.endFill();
_l3.__proto__ = CustBtn.prototype;
var _l2:TextField = _root.createTextField("status_txt", 10, 300, 300, 200, 20);
with (status_txt) {
	text = "status";
}
А это другой вариант, с определением класса не во внешнем файле, а в самой флешке (нет принципиальной разницы, но первый способ более практичный для больших проектов)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 31.07.2006 в 18:33.
Создать новую тему Ответ Часовой пояс GMT +4, время: 01:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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