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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.04.2007, 17:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 11  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Второй раз объекта исполнителя можно не указывать, если с областями видимости все в порядке. Лично я всегда указываю — привычка.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Я так понял, весь сыр бор в том, что WindWalker не нравится внешний вид
Код:
btnMenu1.onRelease = Delegate.create(this, this.onMenuReleased, 1);
А по душе
Код:
btnMenu1.onRelease = new Call(this).onMenuReleased(1);
Все из-за пары букв лишних в коде?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 27.04.2007, 17:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 13  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
iNils, можно твой Delegate сократить до:

Код:
public static function create(obj:Object, func:Function, arg:Array):Function {
		return function () {
		    return func.apply(obj, arguments.concat(arg));
		};
	}

Правда, в ущерб некоторой функциональности (почти незаметный).

Старый 27.04.2007, 17:37
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 14  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Цитата:
Сообщение от iNils
Все из-за пары букв лишних в коде?
Скорее, в их порядке.
Ну представьте, что писали бы на AS вот так:
Код:
invoke moveTo, mc, 0, 0
invoke lineTo, mc, 0, 100
...
Красиво?

Старый 27.04.2007, 17:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 15  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Лично меня такое написание нисколько не смущает.

Старый 27.04.2007, 17:49
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 16  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Кстати, можно же и вообще без классов обойтись:
Код:
var handler = this;
btnMenu1.onRelease = function() { handler.onMenuReleased(1) }
btnMenu2.onRelease = function() { handler.onMenuReleased(2) }
btnMenu3.onRelease = function() { handler.onMenuReleased(3) }
Тоже совсем немножко лишник буковок.
Но лично меня всегда смущало, что локальная переменная оказывается какой-то не совсем локальной.
Это уже совсем крутое колдунство.


Последний раз редактировалось WindWalker; 27.04.2007 в 17:57.
Старый 27.04.2007, 17:49
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 17  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от WindWalker
Скорее, в их порядке.
Ну представьте, что писали бы на AS вот так:
Код:
invoke moveTo, mc, 0, 0
invoke lineTo, mc, 0, 100
...
Красиво?
А причем тут текущий синтаксис Delegate? Там идет объект, метод, аргументы. Точно также как и у вас и в setInterval.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 27.04.2007, 17:55
WindWalker вне форума Посмотреть профиль Отправить личное сообщение для WindWalker Найти все сообщения от WindWalker
  № 18  
Ответить с цитированием
WindWalker
[+1 18.03.08]

Регистрация: Nov 2006
Сообщений: 223
Скобочки стоят не совсем там, где надо.
И объект отделается от метода не точкой, а запятой (если опускать this).

А setInterval вообще жуткая весчь, я бы не стал её брать как образец для подражания

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

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

Старый 27.04.2007, 17:59
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 20  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Код:
function onMenuReleased( param ){
return ( function(){ trace("hello from " + this._name); trace(param); } );
}

btnMenu1.onRelease = onMenuReleased(1);
btnMenu2.onRelease = onMenuReleased(2);
btnMenu3.onRelease = onMenuReleased(3);
а насчет Call.. Если вспомнить что это раньше обозначало..

Или вообще вот так:
Код:
function onMenuReleased(){
	var arr = arguments;
return ( function(){ trace("hello from " + this._name); trace(arr); } );
}

btnMenu1.onRelease = onMenuReleased(1);
btnMenu2.onRelease = onMenuReleased(2);
btnMenu3.onRelease = onMenuReleased(3,4,5);
И всё. Никаких тебе классов.


Последний раз редактировалось Kikasso; 27.04.2007 в 18:09.
Создать новую тему Ответ Часовой пояс GMT +4, время: 20:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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