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

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

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

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
По умолчанию Стандартные классы

(Не знаю насколько тема подходит данному подфоруму)

В одном из топиков велся разговор о работе с массивами, и я задался нижеследующим вопросом:
Возможно ли как-нибудь изменить поведение стандартных классов (я так же не знаю, какой термин подходит для описания группы классов, которые Array, Number, BitmapData, то есть тех, которые присутствуют во флеше изначально), при этом не наследуясь от них и не оверрайдя соответствующие методы?
Например, сделать чтоб Array в своем методе toString() возвращал не
Код:
1,2,3,4,5
а, к примеру,
Код:
[1,2,3,4,5]
для избегания путаницы с трейсом вложенных массивов?
Вообще, где хранятся эти классы? в playerglobal.swc? Просвятите меня, пожалуйста.
__________________
cats are supreme beings


Последний раз редактировалось iNils; 16.12.2012 в 01:58.
Старый 16.12.2012, 01:38
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Нельзя. Обязательно надо наследоваться и переназначать методы. Причем наследоваться можно только от тех классов, которые не являются финализированными. По-моему от Number нельзя унаследовать свой класс (хотя может я и не прав, точно не помню)
Цитата:
Вообще, где хранятся эти классы? в playerglobal.swc? Просвятите меня, пожалуйста.
Нигде не хранятся, они вшиты во флеш плеер, и написаны на С++

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

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
Великая печаль
__________________
cats are supreme beings

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

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

Старый 16.12.2012, 04:55
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 5  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
toString() у большинства стандарных классов прототипный, так что можно так:
Код AS3:
Array.prototype.toString = function() : String {
	return "[" + this.join(", ") + "]";
};
 
 
trace([1, 2, 3]);

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Переопределение стандартных функций может привести к проблемам в другом месте, где ожидается стандартное поведение функции.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jan 2012
Адрес: (0;0;0) относительно меня
Сообщений: 82
Отправить сообщение для am_devcorp с помощью Skype™
Цитата:
Сообщение от iNils Посмотреть сообщение
Переопределение стандартных функций может привести к проблемам в другом месте, где ожидается стандартное поведение функции.
Ну это да, поэтому все хорошие люди и наследуются; но тут я сомневаюсь, что toString где-то вот так используется, что его переопределение кому-нибудь навредит.
__________________
cats are supreme beings

Старый 16.12.2012, 14:57
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 8  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Кстати, с Array.toString() был связан баг, когда при вызове toString() у вложенных массивов можно было натолкнуться на бесконечный цикл (если массив сам в себя вложен), и в таких ситуациях, естесственно, получалось переполнение стека. Так что будте бдительны, если будете сами реализовывать.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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