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

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

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

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от vikingcompany Посмотреть сообщение
Ну приехали...
Вот только кнопка при этом всё равно остаётся не нажатой.
Привет!
Сделайте вместо кнопки клип из двух кадров(отжатое состояние и нажатое). В каждом поставте стоп().
Далее
Код:
but.onPress = function() {
	trace("нажали програмно")
	this.play()
}
but.onRelease = function() {
	trace("Отжали програмно")
	this.play()
}
Вызываем нажатие - but.onPress()
Соответственно отжатие - but.onRelease()

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

Регистрация: Mar 2008
Адрес: Санкт-Петербург
Сообщений: 171
Отправить сообщение для ОльгаЮрьевна с помощью ICQ
vikingcompany можете меня конечно игнорить, но я ответила на ваш вопрос... вроде

Старый 19.05.2009, 19:26
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 3  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Цитата:
Вызов события but.onPress () с предварительным заданием обработчика but.onPress = function() { ... }
действительно выполняет те же функции, что и при нажатии на кнопку.
Вот только кнопка при этом всё равно остаётся не нажатой. Я ясно выразился?
Так вам шашечки или ехать?
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
Уважаемые ОльгаЮрьевна, GAIKER, Жень Шень! Благодарю вас за участливость!

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

Я же хотел выяснить
ни как программно вызвать обработчик события кнопки, а как программно НАЖАТЬ на неё.

А это, согласитесь, два разных действия.
Например: при вызове обработчика, фокусы (ну или что-то там) остаются на своих местах.
А при нажатии кнопки - переходят к ней.

Старый 20.05.2009, 02:33
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 5  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Selection.setFocus(yourButton);

Объясните, что вы имеете в виду под нажатием?
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: May 2008
Адрес: г. Макеевка
Сообщений: 200
Цитата:
Сообщение от GAIKER Посмотреть сообщение
Объясните, что вы имеете в виду под нажатием?
Ну мышкой, что ли ... )))
Попробую объяснить, зачем это нужно.

На подгружаемом клипе есть кнопка, обращающаяся к прелоадеру в _root.
Так вот при нажатии мышкой прелоадер срабатывает, а при простом вызове обработчика - нет.
Но почему?!
А всё потому, что обработчик вызывается компонентом v2, который в тот момент держит на себе выделение.
Природа проблемы, как мне кажется, кроется где-то в FocusManager.
Однако я не уверен, что с этой стороны её будет решить проще. Вот и бьюсь с кнопкой.


Последний раз редактировалось vikingcompany; 20.05.2009 в 09:10.
Старый 20.05.2009, 11:04
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 7  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Привет!
vikingcompany, все-таки надо выражаться яснее. Например из фразы
Цитата:
Вот только кнопка при этом всё равно остаётся не нажатой
я понял, что надо графически отразить процесс нажатия, но программно.
Если трудно сформулировать вопрос, приложите упрощенный исходник, что бы общественность не гадала на кофейной гуще.
А проблемы, в свете последнего сообщения, мне кажется, и в области видимости.

Старый 20.05.2009, 07:22
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 8  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Создаем кнопку, делаем ей 4 состояния, конвертим ее из кнопки в мувиклип.
И пишем что то вроде:
Код AS1/AS2:
myButton.gotoAndStop(3);
myButton.onPress=function(){};
Ну и в принципе обычную кнопку заменяет такой наборчик:
Код AS1/AS2:
myButton.stop();
myButton.onRollOut=function(){myButton.gotoAndStop(1)};
myButton.onRollOver=function(){myButton.gotoAndStop(2)};
myButton.onPress=function(){myButton.gotoAndStop(3)};
myButton.onRelease=function(){myButton.gotoAndStop(4)};
myButton.onReleaseOutside=function(){myButton.gotoAndStop(4)};


Последний раз редактировалось aksios; 20.05.2009 в 07:54.
Старый 20.05.2009, 11:47
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 9  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Не знаю - правильно ли понял...
Если имеется такое:
Код AS1/AS2:
but.onRelease = function():Void{
	doSomething();
}
То программно нажать кнопку можно так:
Код AS1/AS2:
but.onRelease();
Если используется компонент Button, то так:
Код AS1/AS2:
this.click = function(eventObj:Object){
    doSomething();
};
but.addEventListener("click", this);
 
but.dispatchEvent({type:"click"});


Последний раз редактировалось Волгоградец; 20.05.2009 в 11:55.
Старый 20.05.2009, 11:55
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 10  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Вы последние сообщение автора читали?
Цитата:
А всё потому, что обработчик вызывается компонентом v2, который в тот момент держит на себе выделение.
Тут лучше кодик увидеть.

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

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

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


 


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


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