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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.06.2007, 17:11
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 1  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
По умолчанию Как узнать какой переменной обозначен мувилип?

Сразу приношу извинения за "кривое" название топика - не знаю как сформулировать. идея в следующем: при клике на мувик я хотел-бы в трассировке получать определенный текст. В .as файле пишу следующее:
Код:
function elem(mc:MovieClip){
	this.pict=mc.createEmptyMovieClip("pic", mc.getNextHighestDepth());
	this.comment="определенный текст";
}
	a[0]=new elem(someMovieClip);
	a[0].pict.onPress=function(){trace(this.comment)} //undefined
на выходе имею ошибку т.к. this - мувик pic, а не объект "a[0]", который я создавал в скрипте. отсюда и вопрос: как мне при выполнении мувика добраться до "a.comment"?


Последний раз редактировалось Torero; 21.06.2007 в 18:07.
Старый 21.06.2007, 17:21
divinus вне форума Посмотреть профиль Отправить личное сообщение для divinus Найти все сообщения от divinus
  № 2  
Ответить с цитированием
divinus
 
Аватар для divinus

Регистрация: Dec 2005
Адрес: мухосранск
Сообщений: 661
Отправить сообщение для divinus с помощью ICQ
если я понял правильно нужно что то типа вот этого?
Код:
function elem(temp_mc_name:String) {
// создание самого клипа
	var temp_mc:MovieClip = this.createEmptyMovieClip(temp_mc_name, this.getNextHighestDepth());
	temp_mc.comment_1 = "коментарии";
	temp_mc.onPress = function() {
		trace(this.comment_1);
	};
// наполнение, чтоб было куда щелкать
	temp_mc.beginFill(0xFF0000);
	temp_mc.moveTo(10, 10);
	temp_mc.lineTo(100, 10);
	temp_mc.lineTo(100, 100);
	temp_mc.lineTo(10, 100);
	temp_mc.lineTo(10, 10);
	temp_mc.endFill();
}
elem("my_clip");
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет...

Старый 21.06.2007, 17:34
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 3  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
не то. у меня свойством "pict" является ссылка на объект мувиклип т.к. его размеры и свойства задаются значительно позже чем он сам создается. Каждый элемент массива "a"-несколько мувиков+куча свойств. У тебя-же, по-моему, просто содается мувик и вешается на него перехватчик onPress.

-------
Отцы, на вас уповаю! Не дайте пропасть в неведении.)))


Последний раз редактировалось Torero; 21.06.2007 в 18:50.
Старый 22.06.2007, 01:31
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Что мешает создавать comment прямо в pic?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 22.06.2007, 02:23
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 5  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Приведенный код - упрощенный вариант. Все сложнее. В одном объекте пытаюсь увязать между собой несколько мувиклипов, текстбоксов и свойств, после чего, в цикле создаю массив таких объектов. Внутри каждого объекта есть управляющий клип, который перехватывает мышиные события и производит соответствующие действия. Проблема в том, что я не могу получить доступ к ведомым клипам т.к., используя "this" в "onPress" получаю Instance Name клипа(что вполне справедливо), а не ссылку на объект в который этот клип входит.
Частично решить поблему удалось как-раз тем способом который ты обозначил - в свойства каждого управляющего клипа я включил его порядковый номер и, используя "eval", смог, через Instance Name получить доступ к ведомым клипам... Однако меня не покидает ощущение, что все через ж.. делаю. Итого вопрос:
а)правильно-ли я пытаюсь увязать несколько мувиков? Может надо создание объекта отдельным классом описывать или есть какие-то другие пути решения проблемы?
б)можно-ли, тем не менее, при выполнении события onPress получить доступ к объекту,одной из частей которого является данный клип.

З.Ы.ООП вобще и AS в частности изучать начал месяца полтора назад - до многих вещей еще просто не дошел - не ругайте сгоряча.))
З.З.Ы. В качестве примера лучше использовать такой код:
Код:
private function createObjArray():Void{

function elem(mc:MovieClip){
	this.pict1=mc.createEmptyMovieClip("pic"+(k), mc.getNextHighestDepth());
	this.comment="";
	this.pict2=mc.createEmptyMovieClip("picc"+(k), mc.getNextHighestDepth());
}
	for (k = 0; k < 10; k++){
		a[k]=new elem(someMovieClip);
		a[k].pict1.onPress=function(){if (a[k].comment=="+"){a[k].pict2._alpha=0;} }
	}
}


Последний раз редактировалось Torero; 22.06.2007 в 02:33.
Старый 22.06.2007, 02:37
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
this" в "onPress" получаю Instance Name клипа(что вполне справедливо), а не ссылку на объект в который этот клип входит.
Ну добавьте свойство-ссылку, в каждый мувик входящий в объект. Что-нибудь вроде (изнутри объекта) mc.refToObj = this
Тогда (из мувиклипа) this.refToObj будет то что надо.

Старый 22.06.2007, 03:29
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 7  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
2Kikasso.Работает. 2All.Спасибо за помощь.
Неприятный осадок (насчет того, что можно по-другому), конечно, остался.. Сам разбираться буду.. Топик закрыт.


Последний раз редактировалось Torero; 22.06.2007 в 03:37.
Старый 22.06.2007, 04:20
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 8  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
А что осадок-то? Вы хотите чтобы у мувиклипа было какое-то мувиклипное свойство, ссылающеся на некий абстрактный объект, в котором этот мувиклип упомянут.
А если таких объектов несколько, и они разные? Так что ручками создавайте такое свойство, прямо указывайте, кого имеете в виду, и не волнуйтесь - это правильно.

Старый 22.06.2007, 14:08
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
У себя бы я воспользовался свои Delegate и передавал бы в качестве параметра ссылку на экземпляр elem
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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