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

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

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

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

Вот есть объект
Код AS1/AS2:
var nyanCat = {
	produceNyan: function(){
		trace("nyan") 
	},
	__resolve: function(name: String){ 
		return this[name] = "nyan_" + name 
	}
}
Хочется уметь делать так, что
Код AS1/AS2:
for (var i in nyanCat) 
	trace(i)
ничего не выводит. Или хотя бы не выводит __resolve, который ранее не перечислялся. Возможно ли это?

Просто возможность переопределить/добавить пару методов в Object или MovieClip кажется очень заманчивой. Но, раз это "поломает" for..in у всех их наследников, уже как-то и не хочется


Последний раз редактировалось Martoon; 02.09.2015 в 22:54.
Старый 02.09.2015, 23:26
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от Martoon Посмотреть сообщение
Просто возможность переопределить/добавить пару методов в Object или MovieClip кажется очень заманчивой.
По-идее можно ведь создать унаследованные классы и в них переопределить нужные методы.
А чтобы переопределить методы для мувика глобально (без создания подклассов), то в as2 было что-то связано с prototype, но я забыл совсем...

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

Регистрация: Nov 2006
Сообщений: 57
Вопрос не в том как глобально переопределить, это понятно.
Код AS1/AS2:
Object.prototype.nyan = function(){ ... }
Вопрос в том, можно ли сделать это таким образом, чтобы в for..in этот метод не появлялся (и желательно нативно).

Про унаследованные классы - тоже не совсем по сути вопроса. for..in по объекту такого класса-наследника пройдётся по новому методу

Старый 03.09.2015, 09:20
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 4  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Надо снять с объекта запрещение на перечисление его свойств циклом for-in.

Код AS1/AS2:
for ( var i in _global ) trace( i )
trace("■")
 
             ASSetPropFlags( _global, null, null, 1)
 
for ( var i in _global ) trace( i+" = "+_global[i] )
trace("■")
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

Регистрация: Nov 2006
Сообщений: 57
То что нужно, спасибо )
__________________
мув переводится мувиклип, просто писать долго.

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

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

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


 


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


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