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

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

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

Регистрация: Nov 2006
Сообщений: 93
По умолчанию Переопределение операторов в AS3

Только начал разбираться с третим скриптом. Вижу что много нового полезного добавили. А переопределение операторов добавили?

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

Регистрация: Sep 2002
Сообщений: 30,787
А что подразумевается под «переопределение операторов»?

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

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
если вы имеет ввиду переопределение членов класс, то это можно делать и во второй версии языка...

Старый 18.07.2007, 14:27
Ляксей вне форума Посмотреть профиль Отправить личное сообщение для Ляксей Найти все сообщения от Ляксей
  № 4  
Ответить с цитированием
Ляксей

Регистрация: Nov 2006
Сообщений: 93
Если кто программировал на C++, то помнят , что там можно переопределить такие операторы как +,-,=,==,[] и т.д.
Например для класса Vector3D очень бы хотелось писать так

Код:
var a:Vector3D = new Vector3D(1,0,0);
var b:Vector3D = new Vector3D(0,1,0);
b += a; // b(1,1,0) - теперь
а не так

Код:
var a:Vector3D = new Vector3D(1,0,0);
var b:Vector3D = new Vector3D(0,1,0);
b = b.Sum(a); // b(1,1,0) - теперь
Кстати вопрос в догонку, как управлять оператором =
То есть как я могу указать я хочу ссылку на объект скопировать или просто скопировать все члены объекта? В AS2 мне приходилось писать функцию CreateCopy, которая создавала новый объект такого же класса, копировала все члены и возвращала ссылку.

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

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Ненужно этого делать, ибо плохой стиль программирования, если работаешь в комманде - неочевиден результат для напарника, хотя если работаешь сам с собой то все нормально.
__________________
33 коровы

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

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

Старый 18.07.2007, 14:55
Ляксей вне форума Посмотреть профиль Отправить личное сообщение для Ляксей Найти все сообщения от Ляксей
  № 7  
Ответить с цитированием
Ляксей

Регистрация: Nov 2006
Сообщений: 93
Цитата:
Сообщение от __i
Ненужно этого делать, ибо плохой стиль программирования, если работаешь в комманде - неочевиден результат для напарника, хотя если работаешь сам с собой то все нормально.
Не нужно чего делать? Это про какой пункт?
Если про операторы += и тому подобные, то как же Вы порекомендуете поступать с векторами и матрицами?
Как раз для таких типов подобные оперторы это хороший стиль программирования, т.к. операции суммы, вычитания, скалярного умножения или веторного умножения вполне определённые вещи.
Кстати, может есть встроенные 2D или 3D вектора ?

Старый 18.07.2007, 15:33
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 8  
Ответить с цитированием
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
2Ляксей

потому что ECMA,
а по поводу хорошего стиля, согласен, нехрен повторять умные слова из заумных книжек.

а просто методами нельзя подобное сделать? приведи пример?

и еще бы посоветовал порыть сырцы какой нибудь 3D либы типа Papervision и физического движка на AS3.


Последний раз редактировалось etc; 18.07.2007 в 15:42.
Старый 18.07.2007, 15:53
Ляксей вне форума Посмотреть профиль Отправить личное сообщение для Ляксей Найти все сообщения от Ляксей
  № 9  
Ответить с цитированием
Ляксей

Регистрация: Nov 2006
Сообщений: 93
Цитата:
Сообщение от john
2Ляксей
потому что ECMA,
а по поводу хорошего стиля, согласен, нехрен повторять умные слова из заумных книжек.
Согласен с кем? Причём тут заумные книжки, речь идет об удобстве программирования, читабельности кода и прочих вещах повышающих
производительность труда.

Цитата:
Сообщение от john
а просто методами нельзя подобное сделать? приведи пример?
Можно и просто методами. Код внутри опертора * и метода mult будет практически один и тот же.
Только первый вариант более читабельный.

Код:
c  = b*a;                    // вариант 1

c = b.mult(a);             // вариант 2
Вы вот попытайтесь написать что-нить интенсивно использующее математику типа 3D движка на Flash или сложный движок частичек( со всякими физ силами и прочей красотой), тогда удобство/неудобство описанных концепций Вам станет более очевидным.

Старый 19.07.2007, 01:19
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 10  
Ответить с цитированием
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
мне и так все очевидно,
кратко - да,
возможности которые нельзя сделать методами - нет.

я хотел увидеть пример реализации который действительно нельзя реализовать с помощью методов...

а согласен я был с вами.

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

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

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


 


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


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