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

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

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

Регистрация: Nov 2006
Сообщений: 85
По умолчанию на фига козе баян или зачем флешу type hint?

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

В частности, сломал себе мозг, пытаясь понять, почему не работает одна функция, например:
Код:
function foo(left:Number,width:Number) {
     return left+width;
}
//обратите внимание на тип параметров

var _xml=new XML();
_xml.parseXML("<foo left=\"1\" width=\"5\"/>");
//в реальности, конечно, xml грузится снаружи...

var node=_xml.childNodes[0];
trace(node.attributes.left+","+node.attributes.width);
//вы удивитесь, но left действительно = 1, а width = 5

trace(foo(node.attributes.left,node.attributes.width));
//что вы ожидаете увидеть тут? 6? наивные! 15! :)))
несмотря на то, что параметры функции объявлены как Number, флеш без зазрения совести засовывает в них String из XML - ни на что, конечно, не ругаясь, и успешно осуществляет конкатенацию строк вместо арифметической операции

первый вопрос - риторический: на фига тогда вообще type hinting флешу, если он не может самостоятельно элементарной операции приведения типов выполнить?

и теперь вопрос ПО СУЩЕСТВУ: понимаю, что мои замашки программера тут явно не к месту - как вообще принято такие вещи писать на ActionScript - "правильно" с точки зрения флеша? или надо каждый раз внутри функции принудительно приводить тип?

З.Ы. кстати, а как тип вообще приводить?

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

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

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


 


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


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