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

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

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Как вариант: не подойдет, проверять в методе setTextFormat типы передаваемых аргументов (массив arguments) и в зависимости от этих типов делать то что нам нужно?

Старый 05.11.2006, 09:46
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 22  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Цитата:
Сообщение от iNils
Реализуйте во флеше со строгой типизацией в аргументах, следущее аналог метода setTextFormat:
Код:
TextField.setTextFormat (textFormat)
TextField.setTextFormat (index, textFormat)
TextField.setTextFormat (beginIndex, endIndex, textFormat)
А чем это относиться к типизации? во флэше нету оверлоадинга, но оверлоадинг в конечном итоге просто замещается на обычную проверку типов аргументов функции как сделанно например в as2lib

потом динамичность никто не отменял, а код со строгой типизацией действительно легче читать. (ИМХО)

Код:
class TextField {
 public function setTextFormat ():Void {
  
  if (TextFormat (arguments [0]) != null) {
   __setTextFormat (0, this.length, TextFormat (arguments [0]));
  } else if (TextFormat (arguments [1] != null)) {
   __setTextFormat (arguments [0], text.length, TextFormat (arguments [1]));
  } else if (TextFormat (arguments [2] != null)) {
   __setTextFormat (arguments [0], arguments [1], TextFormat (arguments [2]));
  } // end if
 }
 
 private function __setTextFormat (beginIndex:Number, endIndex:Number, tf:TextFormat):Void {
 }
}

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

Регистрация: Sep 2002
Сообщений: 30,787
А я бы проверку на каждый параметр поставил, какого он типа — Number, String, Object и т.п. и указал бы везде тип Object.

Что касается типизации, то, к примеру, FDT научит ею пользоваться и застрахует от ошибок в типах. Если не проставишь тип — ошибка, если где-то захочешь присвоить значение другого типа — тоже ошибка. Это позволяет найти ошибку в кратчайшие сроки, даже не компилируя по сто раз проект.

Вы можете и не пользоваться FDT, писать код в блокноте и, если он работает и нет проблем с типами данных — хорошо. Но я бы ни в коем случае не выложил класс в сеть для общего пользования. Потому что если такой класс положить в тот же FDT (как бы я и сделал), то ошибки и варнинги будут если не на каждой, то через одну строку. Не хочу потом целыми днями икать, когда те, кто решили воспользоваться моим классом, будут меня поминать нехорошими словами. Бывают ещё такие моменты, когда две ошибки, сложенные вместе, приводят к верному результату и фактически о них, если ничего не проверять, можно забыть навсегда.

Старый 05.11.2006, 16:07
ir73 вне форума Посмотреть профиль Отправить личное сообщение для ir73 Найти все сообщения от ir73
  № 24  
Ответить с цитированием
ir73
FD Team

блогер
Регистрация: Dec 2005
Сообщений: 365
Записей в блоге: 6
Цитата:
Сообщение от iNils
говорит лишь о том, что ты не предусмотрел проверку в процессе выполнения и перевод в нужный тип
Верно, и кто об этом должен позаботиться? Конечно же компилятор.
Я же не должен кастить переменную, которую я обьявил типа Стринг в Намбер везде, где я ее использую.

Без строгой типизации компилятор нам ничего не скажет.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от ir73
Верно, и кто об этом должен позаботиться? Конечно же компилятор.
Я же не должен кастить переменную, которую я обьявил типа Стринг в Намбер везде, где я ее использую.

Без строгой типизации компилятор нам ничего не скажет.
Причем тут компилятор?
Если вы вводите число в текстовое поле, а потом хотите с ним произвести некое математическое действие, то делать Number (txt) будете вы, а не компилятор.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.11.2006, 16:21
ir73 вне форума Посмотреть профиль Отправить личное сообщение для ir73 Найти все сообщения от ir73
  № 26  
Ответить с цитированием
ir73
FD Team

блогер
Регистрация: Dec 2005
Сообщений: 365
Записей в блоге: 6
Если я в классе объявил
Код:
private var s:String;
....

а потом где нибудь в функции сделаю так
Код:
private function func(n:Number) {
s = n;
}
то комилер ругнется.

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

Регистрация: Sep 2002
Сообщений: 30,787
ir73, как раз должен. Компилятор понятия не имеет, что вы хотите сделать с переменной и он не телепат.

И правильно ругнется компилятор, потому что просто так сказать, что слон равен мухе нельзя.

Старый 05.11.2006, 16:45
Rustem-inside вне форума Посмотреть профиль Отправить личное сообщение для Rustem-inside Найти все сообщения от Rustem-inside
  № 28  
Ответить с цитированием
Rustem-inside

Регистрация: Jun 2005
Адрес: Казань
Сообщений: 824
Цитата:
Сообщение от Nirth
Мирамакс вы начинаете косить под клишина, сходите к психотерапевту =)
Что вас беспокоит? Вы хотите поговорить об этом?
__________________
Жизнь - это не игра. Жизнь - это булка, масло и

Старый 05.11.2006, 16:58
ir73 вне форума Посмотреть профиль Отправить личное сообщение для ir73 Найти все сообщения от ir73
  № 29  
Ответить с цитированием
ir73
FD Team

блогер
Регистрация: Dec 2005
Сообщений: 365
Записей в блоге: 6
Цитата:
Сообщение от __etc
ir73, как раз должен. Компилятор понятия не имеет, что вы хотите сделать с переменной и он не телепат.

И правильно ругнется компилятор, потому что просто так сказать, что слон равен мухе нельзя.
ну я вроде как раз это и написал.

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

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Цитата:
Сообщение от __etc
А я бы проверку на каждый параметр поставил, какого он типа — Number, String, Object и т.п. и указал бы везде тип Object.
Для чего же потом указывать тип Object? Почему не вызывать потом разные методы с этими же типами данных?

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

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

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


 


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


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