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

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

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

Регистрация: Aug 2012
Сообщений: 297
По умолчанию Событие имеет метод, который может возвращать что-то

Здравствуйте.
Можно ли сделать так, чтобы функция, например с аргументом: event:Event, могла что-то возвращать и при этом вызываться благодаря событию?

Код AS3:
stage.addEventListener(Event.ENTER_FRAME, updateFrames);
function updateFrames(event:Event):Boolean
{
        return true;
}

Старый 20.04.2013, 15:22
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 2  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
никогда такой вопрос не возникал, а можо узнать в какой реализации это можно использовать ?
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 20.04.2013, 16:16
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Dip52, ответь для себя на вопрос, а кто это вот return true; получит?
__________________
Поймай яблоко 2!

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
а куда возвращать то?.

в случае в dispatchEvent это имеет хоть какой-то смысл..в контексте вашего примера я его не вижу.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Aug 2012
Сообщений: 297
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Dip52, ответь для себя на вопрос, а кто это вот return true; получит?
Вот я и хочу узнать как можно это сделать, чтобы привязать значение к переменной.

Старый 21.04.2013, 00:18
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
У меня это всегда плохо получалось, но я попробую поиграть в ясновидящего: тебе нужно, чтобы обработчик менял какую-то "переменную" у объекта, который послал обрабатываемое в этот момент событие? Ну для этого надо в этом объекте завести публичное поле (например), и менять его в обработчике как-то так:
Код AS3:
// someObject у нас является экземпляром некоего SomeClass
someObject.addEventListener(Event.ENTER_FRAME, updateFrames);
function updateFrames(event:Event):void
{
        (event.target as SomeClass).somePublicBooleanVar = true;
}
__________________
Поймай яблоко 2!

Старый 21.04.2013, 00:25
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 7  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Цитата:
Сообщение от Zebestov Посмотреть сообщение
У меня это всегда плохо получалось, но я попробую поиграть в ясновидящего: тебе нужно, чтобы обработчик менял какую-то "переменную" у объекта, который послал обрабатываемое в этот момент событие? Ну для этого надо в этом объекте завести публичное поле (например), и менять его в обработчике как-то так:
Код AS3:
// someObject у нас является экземпляром некоего SomeClass
someObject.addEventListener(Event.ENTER_FRAME, updateFrames);
function updateFrames(event:Event):void
{
        (event.target as SomeClass).somePublicBooleanVar = true;
}
Нет, мне нужно чтобы событие вызывало функцию, которая возвращает данные и эти данные (если такое возможно) как-то привязывались к переменной.

Как-то так:

Код AS3:
var test:Boolean = stage.addEventListener(Event.ENTER_FRAME, upFr);
 
function upFr(event:Event):void
{
     return true;
}
 
if(test)
{
    trace("true");
}

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™

Цитата:
Нет, мне нужно чтобы событие вызывало функцию, которая возвращает данные и эти данные (если такое возможно) как-то привязывались к переменной.
Код AS3:
stage.addEventListener(Event.ENTER_FRAME, upFr);
function upFr(event:Event = null):Boolean
{
     if(event)
         test = upFr();
     return !event;
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 21.04.2013, 01:09
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 9  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Ого о0!

Код AS3:
var test:Boolean = stage.addEventListener(Event.ENTER_FRAME, upFr);
Метод addEventListener ничего не возвращает. Он всего лишь регистрирует метод-обработчик upFr() для события ENTER_FRAME объекта stage.

А уже в обработчике вполне себе можно сделать так
Код AS3:
function upFr(event:Event):void
{
     test = true;
}
Ну а вот это вообще ни о чем
Код AS3:
if (test)
{
    trace("true");
}
Ну проверит оно один раз этот твой test, ну выведет оно "true", если в этот самый момент уже в программе test равен true, а дальше что? Если тебе нужно проверять это каждый раз после события ENTER_FRAME, то делай уже как-то так
Код AS3:
function upFr(event:Event):void
{
    test = true;
    checkoutTest();
}
 
function checkoutTest():void
{
    if (test)
    {
        trace("true");
    }
}
__________________
Поймай яблоко 2!

Старый 21.04.2013, 10:59
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 10  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Я понял вопрос так: Как с событием передать еще и cсылку на объект. Для этого обычно наследуются от класса Event, пример:

Добавлено через 50 секунд
Код AS3:
public class NodeViewEvent extends Event {
		public static var NODE_VIEW_LAYOUT:String ="NODE_VIEW_LAYOUT";
		private var _nodeView:NodeView;
 
		public function NodeViewEvent(type : String, view:NodeView, bubbles : Boolean = false, cancelable : Boolean = false) {
			super(type, bubbles, cancelable);
			_nodeView = view;
 
		}
		override public function clone():Event{
			return (new NodeViewEvent(type, _nodeView, bubbles, cancelable));
		}
		public function get view():NodeView{ return _nodeView;}
	}

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

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

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


 


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


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