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

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

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

Регистрация: Dec 2006
Сообщений: 1,764
По умолчанию автоматическое нажатие кнопки

у меня есть функция, которая отображает кнопку на экране, а кнопка затем при нажатии вызывает другую функцию, я бы хотел чтоб после того как я вызову первую функцию отображения кнопки на экране, кнопка с имитировала нажатие и выполнила то что я задал в функции, как лучше сделать имитацию нажатия и вызов действия?
Спасибо

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

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Есть кнопка, есть ее обработчик. Вешайте одно на другое и программируйте как вам удобно.
Если нужно сделать возможность вызова обработчика без обработки, то пишите что-то типа
Код AS3:
private function handler(e:MouseEvent=null):void{...
Или я не понял вопрос
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 28.12.2010, 06:28
NikolyA вне форума Посмотреть профиль Отправить личное сообщение для NikolyA Найти все сообщения от NikolyA
  № 3  
Ответить с цитированием
NikolyA
 
Аватар для NikolyA

Регистрация: Dec 2006
Сообщений: 1,764
Немного поясню, есть функции:

Код AS3:
		protected function saveToFileDelayForDraw(duration:Number):void {	
			saveToFileDelayForDrawTimer = new Timer(duration, 1);
			saveToFileDelayForDrawTimer.addEventListener("timer", saveCurrentViewToFile, false, 0, true);
			saveToFileDelayForDrawTimer.start();				
		}
 
		protected function saveCurrentViewToFile(event:Event):void {    			
    			if(saveToFileDelayForDrawTimer.running) { 
				saveToFileDelayForDrawTimer.removeEventListener("timer", saveCurrentViewToFile);
				saveToFileDelayForDrawTimer.stop(); 
			}
		saveBtn.visible = true;
		saveBtn.addEventListener(MouseEvent.CLICK, saveImages);
		saveBtn.buttonMode = true;
 
		}	
 
 
		public function saveImages(event:MouseEvent):void
		{
			var temp:BitmapData = new BitmapData(viewer.width, viewer.height);
			temp.draw(viewer);
			var image = new Bitmap(temp);
			var jpgimage:JPGEncoder = new JPGEncoder(100);
			var ba:ByteArray = jpgimage.encode(temp);
			var save:FileReference = new FileReference();
			save.save(ba, "image" + ".jpg");
		}
т.е. получается что по таймеру запускаем функцию saveCurrentViewToFile, эта функция показывает мне на экране saveBtn - которая по нажатию выполняет функцию saveImages. А мне бы хотелось чтоб кнопка появлялась и без моего участия, автоматически выполняла требуемое действие.
Где мне в моих функциях подправить
Спасибо

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

Регистрация: Jan 2009
Сообщений: 1,651
Код AS3:
 
		protected function saveCurrentViewToFile(event:Event):void {    			
    			if(saveToFileDelayForDrawTimer.running) { 
				saveToFileDelayForDrawTimer.removeEventListener("timer", saveCurrentViewToFile);
				saveToFileDelayForDrawTimer.stop(); 
			}
		saveBtn.visible = true;
		saveBtn.addEventListener(MouseEvent.CLICK, saveImages);
		saveBtn.buttonMode = true;
                      saveImages(null);
		}
так что ли хотите?
__________________
мой пустой блог

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Насколько помню, вот это

Код AS3:
	save.save(ba, "image" + ".jpg");
отработает только в ответ на действие пользователя, т.е. просто из кода это не вызвать... Безопасность-с...

UPD: Правильно помню, ниже цитата из хелпа:

Цитата:
Этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает ошибка.

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Кстати, как показывает практика, на одно нажатие пользователя можно повесить несколько разных функций, каждая из которых требует нажатия пользователем кнопки в приложении.

Вообще, иногда достаточно просто пересмотреть алгоритм. Не имитировать нажатие кнопки с последующей отправкой файла, а отправить файл и показать нажатие кнопки.

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

Регистрация: Dec 2006
Сообщений: 1,764
всем большое спасибо, найдем другой путь

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

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

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


 


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


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