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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.07.2008, 14:22
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 1  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
По умолчанию ASnative и прочие невидимки

Навеяло соседней темой про AsBroadcaster.
AsBroadcaster и ASSetPropFlags хорошо известны и описаны. А вот до остального как-то не добрался еще, типа:
Код:
ASnative
ASSetNative 
ASSetNativeAccessor

ASconstructor
ASSetupError...
// что-то еще?
Интересно, что и для чего?

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Ничего не знаю про ASSetPropFlags
Что это?

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

Регистрация: Sep 2002
Сообщений: 30,784
http://google.com/search?q=asnative

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
ASnative позволяет добраться до встроенных методов, через числовые индексы (список в аттаче). Удобен тем, что можно подменить какой нибудь метод на свой, а оригинальный метод вызвать через ASnative. Пример с setInterval

ASSetNative - ассоциирует строковое имя с числовым индексом метода. В примере заменяем создание нового клипа с createEmptyMovieClip на newClip. А чуть ниже далее вызваем его же через индексы. При этом, оригинальное название остается!
Код:
var o = MovieClip.prototype;
ASSetNative (o, 901, "6newClip,6beginFill,6beginGradientFill,6moveTo,6lineTo,6curveTo,6lineStyle,6endFill,6clear,8lineGradientStyle,8beginMeshFill,8beginBitmapFill");
trace (this.newClip ("mc", 0)); //_level0.mc
trace (ASnative (901, 0).apply (this, ["mc1", 1]));  //_level0.mc1
trace (this.createEmptyMovieClip ("mc2", 2)); //_level0.mc2
О цифрах перед названиями: по идеи, это номер версии с которой метод доступен. Например "7newClip", будет доступен из 7 и 8, но не из под 6-ки. Однако в CS3 9newClip не работает.

ASSetNativeAccessor - связывает индекс геттера с строкововым именем.
Код:
mc.blendMode = 3;
mc._lockroot = true;
trace (mc.blendMode); //multiply
trace (mc._lockroot); //true
////
var o = MovieClip.prototype;
ASSetNativeAccessor (o, 900, "_lockroot", 500);
ASSetNativeAccessor (o, 900, "8blendMode", 300);
////
trace (mc.blendMode); //true
trace (mc._lockroot); //multiply
Видно, как поменяли два геттера местами.

ASconstructor - аналог ASnative, только для конструктора. Например для Date
Код:
XYZ = ASconstructor (103, 256);
trace (ASconstructor (103, 256) ()); //Mon Jul 21 14:33:11 GMT+0400 2008
trace (XYZ ()); //Mon Jul 21 14:33:11 GMT+0400 2008
Заметь, new не нужен.

ASSetupError - ошибка )
Код инициализации такой
Код:
function AsSetupError (s) {
	var _a = s.split (",");
	var _b = 0;
	while (_b < _a.length) {
		var _c = _a[_b];
		var _d = function (m) {
			this.message = m;
		};
		var _e = new Error ();
		_d.prototype = _e;
		_e.name = _c;
		_e.message = _c;
		++_b;
	}
}
ASSetPropFlags, ASSetNative и ASSetNativeAccessor в свою очередь тоже создаются через ASnative
Код:
ASSetPropFlags = ASnative(1, 0);
ASSetNative = ASnative(4, 0);
ASSetNativeAccessor = ASnative(4, 1);
Вложения
Тип файла: zip asnative.zip (3.8 Кб, 149 просмотров)
Тип файла: zip fmx8_setup.zip (8.1 Кб, 220 просмотров)
Тип файла: zip fmx8_setup2.zip (11.0 Кб, 275 просмотров)
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 04.06.2009 в 21:13.
Старый 21.07.2008, 16:35
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 5  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
iNils, моё уважение!
Буду мучить ASnative теперь

crazyone, ASSetPropFlags

Цитата:
Сообщение от Гурский
Функция ASSetPropFlags (obj, props, allowTrue, allowFalse) требует задания следующих параметров:
· obj. Объект, атрибуты свойств которого будут переопределяться;
· props. Список свойств, для которых необходимо установить атрибуты. Может быть или массивом, содержащим имена свойств в строковом представлении, или строкой, хранящей необходимые данные в виде последовательности иден тификаторов, разделенных запятыми:
Код:
["prop1", "prop2", "prop3"] // Список свойств в виде массива
"prop1, prop2, prop3" // Список свойств в строковом представлении
Если значением данного параметра является null, переопределение атрибутов проводится для всех свойств объекта;
· allowTrue. Число, хранящее три поразрядных флага для каждого из атрибутов.
Флаг первого разряда отвечает за атрибут DontEnum (скрытие от цикла for—in), второго—DontDelete (запрещение удаления), третьего—ReadOnly (защита от переопределения).

Варианты определения атрибутов свойства
Флаг / Величина allowTrue / Возможно ли переопределение / Возможно ли удаление / Возможно ли перечисление
000 0 Да Да Да
001 1 Да Да Нет
010 2 Да Нет Да
011 3 Да Нет Нет
100 4 Нет Да Да
101 5 Нет Да Нет
110 6 Нет Нет Да
111 7 Нет Нет Нет
· При помощи параметра allowTrue можно поднять флаги атрибутов, но не опустить их, т. е., если свойство защищено от удаления, то, введя в качестве n число 0, вы не сделаете его удаляемым. Чтобы установить для какого-то атрибута значение 0, нужно задействовать четвертый параметр рассматриваемой функции. По умолчанию практически для всех свойств и методов встроенных объектов ActionScript было использовано значение allowTrue, равное 7: их нельзя перечислять циклом for—in, удалять и переопределять (некоторые свойства можно задавать самостоятельно — им соответствует значение n=3);
· allowFalse. Параметр, полностью аналогичный n, но служащий не для поднятия, а для опускания флагов атрибутов. Чтобы снять с какого<то атрибута защиту, в заданном для данного параметра числе соответствующий флаг нужно установить как 1. Если создать для allowFalse таблицу, подобную приведенной выше для allowTrue, то элементы в ней будут прямо противоположными.

Код:
ASSetPropFlags(_global, null, null, 1);
for (var i in _global) {
trace(i); 
}

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

Теги
ASconstructor , ASnative , ASSetNative , ASSetNativeAccessor , ASSetupError

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

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


 


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


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