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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.03.2008, 20:20
Shinoby вне форума Посмотреть профиль Отправить личное сообщение для Shinoby Найти все сообщения от Shinoby
  № 1  
Ответить с цитированием
Shinoby
 
Аватар для Shinoby

Регистрация: Oct 2007
Сообщений: 60
По умолчанию Обращение по нажатию кнопки к фрейму

Ситуация такая. Есть фрейм с 1 кадром. В нем значится куча кода и функций. Дошел до того, что стало необходимо на основании данных из вышеобозначенного кода сделать несколько кнопок и по их нажатию (буду я хранить какой то параметр в кнопке или буду смотреть по названию самой кнопки - опять же как скажите так и сделаю) необходимо вызвать функцию из этого фрейма.

Вот что мне непонятно. Как мне из события кнопки:
Код:
on (release){
...........
}
обратиться к функции во фрейме. ну вот туплю...
И как проще поступить? Сделать физически 3 кнопки (у меня их максимум 3 будет) и как то превязать к ним эти события с вызовом, или сделать одну кнопку и нарожать 3 кнопы с помощью "createEmptyMovieClip и attachMovie"?
Ну либо сделать 3 кнопы но разместить их уже програмно с помощью опять же "createEmptyMovieClip и attachMovie". Но события то как у этих кноп отловить и исходя из того какая кнопа нажата кинуть нужный параметр в функцию в фрейме.

а то я что то не пойму где эти кнопки находятся. иерархию не пойму как из них обратиться к фрейму.

Если честно, что в идеале мне бы уже имеющийся Movie Clip сделать реагирующим на клик мышой и что бы вызывал он функцию. Сама кнопка как таковая с ее несколькими состояниями не нужна. Но как я понимаю кликабелен во флеше только обьект Button? Или нет?

Старый 06.03.2008, 11:29
Shinoby вне форума Посмотреть профиль Отправить личное сообщение для Shinoby Найти все сообщения от Shinoby
  № 2  
Ответить с цитированием
Shinoby
 
Аватар для Shinoby

Регистрация: Oct 2007
Сообщений: 60
Нет советов?

Старый 06.03.2008, 11:36
Olegg вне форума Посмотреть профиль Найти все сообщения от Olegg
  № 3  
Ответить с цитированием
Olegg
Banned
[+1 21.02.08]
[+4 21.02.08]
[+5 13.03.08]
[+4 13.03.08]

Регистрация: Feb 2008
Сообщений: 63
код на кнопках - это попса.В том же коде на кадре пишите

имя_кнопки.onPress = имя_функции();

и вообще,я б посоветовал делать мувики,а не кнопки.кнопки - попса.Откройте help и почитайте события класса Movie Clip.И вы убедитесь,что у мувиклипа тоже есть события,как у кнопки.Плюс ко всему при динамических изменениях мувиклипы удобнее.


Последний раз редактировалось Olegg; 06.03.2008 в 11:39.
Старый 06.03.2008, 11:47
Shinoby вне форума Посмотреть профиль Отправить личное сообщение для Shinoby Найти все сообщения от Shinoby
  № 4  
Ответить с цитированием
Shinoby
 
Аватар для Shinoby

Регистрация: Oct 2007
Сообщений: 60
Мне тогда непонятно, почему у меня эта функция сразу отрабатывает. Больше они ниоткуда не вызывается. Заблочиваю строку "my_button.onPress = TEST();" и функция TEST не отрабатывает, разблочиваю и отрабатывает тут же при запуске но еще до нажатия. Сделал с нуля кнопку с единственным состоянием (думаю кол-во состояний кнопки не влияют) все то же

Старый 06.03.2008, 11:54
Olegg вне форума Посмотреть профиль Найти все сообщения от Olegg
  № 5  
Ответить с цитированием
Olegg
Banned
[+1 21.02.08]
[+4 21.02.08]
[+5 13.03.08]
[+4 13.03.08]

Регистрация: Feb 2008
Сообщений: 63
лучше сделайте мувиклип вместо кнопки.Покажите код.

Старый 06.03.2008, 12:29
Shinoby вне форума Посмотреть профиль Отправить личное сообщение для Shinoby Найти все сообщения от Shinoby
  № 6  
Ответить с цитированием
Shinoby
 
Аватар для Shinoby

Регистрация: Oct 2007
Сообщений: 60
Код:
my_button.onPress = TEST();


var step_right = 20;
var next_line = 20;
var layer_index = 10000;
var layer_index2 = 5000;


function ShowTeam(xmlDoc_xml, TeamType, ServerHost) {
..Тут я парсю ХМЛ файл и вызываю другие функции которые порезал дабы не загромождать код.		
}



function TEST(){

	book_xml = new XML();
	book_xml.ignoreWhite = true;
	book_xml.onLoad = function(sucess) {
		if (sucess) {
			ShowTeam(book_xml,3,"server name");
		}
	};
	book_xml.load('путь к ХМЛ файлу');

}
Собственно вот этот TEST отрабатывает сразу. Мне нужно не обязательно кнопку. Мне нужно что угодно что я бы мог скрыть\отобразить в зависимости от результатов парсинга ХМЛ файла (парсится все в других функциях - там очень простой парсинг и он отображает или скрывает одну, две или три "кнопки") и отловив события клика вызвать более сложный парсинг в функции "ShowTeam"

Условие на основании которого я отображаю\скрываю кнопки тут отсутствует. Но оно очень просто если нужно. Если условие верное то отобразить ну например "My_Button1" (повторить 2 раза для 2ух других кнопок) и все. Вот как мне сделать что то выполняющее функции My_Button1 и что бы по клику на это нечто пускалась функция TEST


Последний раз редактировалось Shinoby; 06.03.2008 в 12:32.
Старый 06.03.2008, 12:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Shinoby
Нет советов?
За подобные бессмысленные посты буду наказывать.

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
my_button.onPress = TEST()
onPress - это функция, а TEST не возвращает ничего. т.е. получается, что вы удалили обработчик onPress предварительно выполнив то, что было в теле функции TEST.
Если вы хотите чтобы по onPress вызывалась TEST - нужно присвоить обработчику ссылку на нее
Код:
my_button.onPress = TEST;
А еще лучше пользоваться классом mх.utils.Delegate
__________________
Hell is the possibility of sanity

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

Регистрация: Oct 2007
Сообщений: 60
Уважаемый __etc но вы же не станете спорить, что за вечер, ночь и утро не последовало ни одного ответа (так как видимо топик ушел ниже и ввиду потери передовых позиций стал мало читаемым), в то время как обновив его я тут же получил ответ - который помог мне. Как поступать иначе для поднятия топика "на верх"?

Спасибо wvxvw. А вот глупость, как мне передать в TEST параметр? Кнопок то будет несколько и каждая из них должна как то идентифицироваться вызывая разную обработку в функции (несколько функций не катит, ибо потом эти же параметры все равно будут дальше по цепочке передаваться другим функциям)
Ну вот так же не будет работать, это моя прежняя ошибка "my_button.onPress = TEST("Param1");" Не совсем синтаксис я всеж освоил в АС.


Последний раз редактировалось Shinoby; 06.03.2008 в 12:51.
Старый 06.03.2008, 13:01
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Shinoby
Уважаемый __etc но вы же не станете спорить, что за вечер, ночь и утро не последовало ни одного ответа (так как видимо топик ушел ниже и ввиду потери передовых позиций стал мало читаемым), в то время как обновив его я тут же получил ответ - который помог мне. Как поступать иначе для поднятия топика "на верх"?
Поднимать тему можно лишь в том случае, если в решении или описании проблемы появились новые подробности. В остальных случаях посты типа «Нет ответов?» расцениваются как флуд и наказываются плюсом по четвертому пункту правил форума. Никто не имеет права привлекать к своей теме внимания больше, чем к другим.

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

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

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


 


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


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