Диагностика, ремонт и защита

         

Jumper — джампер съемная перемычка



Jumper — джампер, съемная перемычка на контак­тной группе, размещенной на системной плате, адаптере или контроллере.

LAN — Local Area Network — сеть, объединяющая несколько компьютеров и других периферийных уст­ройств, имеющая целевое назначение и располага-

ющаяся в локальной ограниченной зоне(на терри­тории завода, фабрики, фирмы, здания).

Mass storage — накопители, устройства, использу­ющиеся для сбора и хранения больших массивов данных; к ним обычно относят жесткие диски, стри­меры (накопители на магнитной ленте) и магнито­оптические записывающие устройства.





Как обеспечить доступ к SCSIустройствам



Как обеспечить доступ к SCSI-устройствам при подключении их к SCSI-контроллерам в случае, если таким устройством яв­ляется CD-ROM.

Подключая SCSI-устройство, не забудьте установить на нем идентификатор ID таким образом, чтобы он не по­вторялся другим устройством. Нежелательно использо­вать номер 7, так как обычно на него настроен SCSI-контроллер.

Кроме того, на шине старший идентификатор имеет бо­лее высокий приоритет, поэтому его желательно отдать SCSI-контроллеру. Наиболее корректным в работе и обес­печивающим совместимость с широким кругом внешних SCSI-устройств показали себя SCSI-контроллеры фирмы ADAPTEC, особенно их интеллектуальные варианты АНА1542 (ISA), AHA2742 (EISA), AHA2842 (VESA), АНА2940 (PCI).

Причем их программная поддержка обеспечивает совме­стимость со всеми предыдущими версиями контроллеров.

Подключение НЖМД, как правило, не требует установ­ки специальных драйверов. При использовании магнито­оптических сменных дисков и дисководов CD-ROM драй­вер необходим (для ADAPTEC это ASPIDISK.SYS и ASPICD.SYS соответственно). Для CD-ROM, кроме этого, в AUTOEXEC.BAT нужно установить MSCDEX.EXE, обыч­но входящий в состав дистрибутива DOS.

Устройства CD-R, отличающиеся от обычных CD-ROM, используются для однократной записи дисков CD-ROM в разных форматах дополняются перезаписываемыми, т. е. с возможностью многократной записи на один и тот же носи­тель. Они построены по технологии phaze change. Перезапи­сываемые диски получили название CD-E (Erasable). Новый диск является логическим продолжением CD-R (Orange Book) и CD-ROM. Предполагаемая совместимость по чтению/записи с CD-R и по чтению с CD-ROM. Правда, для того чтобы читать диски CD-E на обычных приводах CD-ROM, требует­ся некоторая их модификация, связанная с необходимостью регулировки считывающего лазера.

В отличие от большинства своих предшественников про­грамма WinCheckit корректно выполняет диагностику CD-ROM и звуковых карт.

Аудиоплата, особенности установки звуковых плат в ПК

Звуковые платы устанавливаются в 16-битное гнездо ISA, используют адрес порта ввода-вывода, адрес порта MPU-401, одну или.более линий IRQ (запросов на прерывание), один или более каналов DMA (прямого доступа к памяти). Для обеспечения совместимости со стандартом SoundBlaster обычно назначается адрес порта ввода-вывода 220h.

Маловероятно, чтобы какие-либо другие устройства ис­пользовали этот адрес, но в большинстве плат предусмот­рена возможность задать при необходимости другое значение этого адреса в диапазоне от 210h до 260h. MPU-401 — это спецификация для аппаратной поддержки MIDI, которая по умолчанию использует адрес 330h.

Обычно для совместимости SoundBlaster и MIDI по умол­чанию для звуковой платы используется линия прерывания IRQ5. Для реализации собственных функций звуковой пла­ты, для прерывания MIDI или для привода CD-ROM шины AT может понадобиться другая линия IRQ (например, IRQ 11 или IRQ 12).

Для IDE-интерфейса платы используется прерывание IRQ15. Если в ПК есть контроллер EIDE с двумя IDE-ин­терфейсами, то это значит, что IRQ 15 уже используется. В этом случае подключите ваш привод CD-ROM к этому ин­терфейсу EIDE, а не к звуковой плате и заблокируйте на плате интерфейс IDE.

Каналы DMA могут напрямую, в обход центрального про­цессора, передавать звуковые данные между памятью и пла­той. Канал DMA1 используется по умолчанию для обеспе­чения совместимости с SoundBlaster и не может быть изме­нен обычным образом.

Дополнительно может быть введен канал DMA5 и скон­фигурирован как 16-битный в целях более быстрой переда­чи данных, особенно во время записи. Если вы использу­ете Windows 9x, то он постарается распознать значение IRQ, DMA и адресов ввода/вывода, используемых в ПК. Однако лучше проверьте установленные параметры при по­мощи Менеджера устройств (Control Panel/System/Device Manager).

Поиск неполадок в системе «ПК — звуковая плата»

При установке в ПК звуковой платы необходимо выбрать номера запросов прерываний, базовый адрес ввода/вывода и каналы ПДП, избегая конфликтов с другими устройствами.

Неисправность звуковой платы может приводить к следу­ющим последствиям:

1. Отсутствует звуковое сопровождение.

2. Повторяются одни и те же звуки.

3. Наблюдается отказ в работе ПК.

К звуковым платам прилагаются установочные програм­мы, которые анализируют конфигурацию системы. Многие звуковые платы работают только с конкретными линиями зап­росов прерываний. Внезапные срывы звучания или непрерыв­ный звук говорят о том, что имеется конфликт из-за преры­ваний. Звуковая плата может использовать несколько кана­лов ПДП (прямого доступа к памяти).

Отсутствие всяких звуков является признаком конфликта из-за канала ПДП.

К наиболее конфликтным устройствам относятся сетевые платы, контроллеры SCSI, интерфейсные платы накопите­лей на магнитной ленте, специальные контроллеры принте­ров типа PostScript и др.



Какие задачи должна решать операционная система?



Какие задачи должна решать операционная система?

К этим задачам относятся:

• контроль и управление всеми функциями компьютера;

• обеспечение обмена данными между компьютером и подключенными к нему периферийными устройства­ми, такими как принтер, дисплей, дисководы и вин­честеры, звуковые платы;

• обеспечение взаимодействия между прикладными про­граммами и модулями технических средств.В пакеты программ, составляющих операционную сис­тему, входят системные программы, сервисные программы (Utilites — утилиты), прикладные программы и (иногда) инструментальные средства для написания (разработки) соб­ственных программ на языках высокого уровня.

Пользователь может задать вопрос: чем же объясняется такое разнообразие операционных систем и какая из них яв­ляется предпочтительнее для установки на компьютере?

Разнообразие операционных систем на рынке ПО объяс­няется и большой конкуренцией среди фирм-разработчиков, и исторически сложившимися условиями. Первая, наиболее популярная операционная система — MS-DOS (Microsoft — Disk Operation System) — и сейчас стоит на большом количе­стве компьютеров и часто сосуществует с Windows — графи­ческими оболочками операционных Windows-систем.

Однако, существуют и такие оболочки, как Novell-DOS, в общем-то не очень сильно отлтчающаяся от MS-DOS, но позволяющая с меньшими затратами подключиться к Novell-подобным сетям, используя для этого соответствующее про­граммное обеспечение. Примером графической оболочки операционных систем широкого распространения является система OS/2 или OS/2 WARP, используемая в локальных и глобальных сетях.

Изолированные компьютеры могут использовать MS-DOS, Windows 3.x, Windows 95, 98, NT, OS/2. При работе в интегрированных системах чаще используется Novell- DOS, Unix-подобные операционные системы.



Каналы прямого доступа (DMA Channels)



Каналы прямого доступа (DMA Channels)

Подобно списку прерываний IRQ, список каналов DMA отражает стандартное их использование операционной сис­темой. Программа Checkit отображает неполный список ка­налов прямого доступа, тем не менее этот список может быть полезным для остальных переназначенных каналов.



Кэширование записи



Кэширование записи

SCSI-диски имеют возможность кэшировать данные как по чтению, так и по записи. Для повышения надежности работы лучше отключить кэш по записи. Системных средств для этого не предусмотрено. Эту операцию можно выпол­нить, например, с помощью утилиты SCSI Explorer, кото­рая входит в пакет EZ SCSI 4.O.

Сколько драйверов устройств может опознать Windows 9x? Существует около 4000 драйверов, т. е. почти на треть боль­ше, чем для Windows 2000, NT 4.0. При этом поддержка многих видео-, аудио- и PCMCIA плат расширения обеспе­чивается гораздо лучше, чем в Windows NT.

В этой связи возникает вопрос, почему некоторые при­кладные программы, работающие в Windows 9x, не работа­ют в среде Windows 2000, NT 4.0.

Существует несколько причин, по которым приложения, работающие под Windows 9x, не поддерживаются на плат­форме Windows NT. Последняя была задумана как стабиль­ная и безопасная ОС, в которой приложения не могут иметьпрямого доступа к аппаратному обеспечению. Это распрос­траняется на многие современные программы, напрямую обращающиеся к таким аппаратным устройствам, как зву­ковые и видеоплаты, сканеры и др. Короче говоря, в сре­де Windows NT не могут работать приложения, нарушающие систему безопасности этой ОС.

В частности, Windows NT не поддерживает драйверы вир­туальных устройств (Virtual Device Drivere — VxD). Прило­жения, для которых они требуются (многие мультимедийные продукты, игры, менеджеры памяти), не могут работать под Windows NT. Вот почему пользователи, намеревающиеся пе­рейти на Windows NT, прежде всего должны убедиться в том, что все имеющиеся у них устройства и приложения поддерживаются этой ОС.

Критерии выбора ОС, как всегда неоднозначны. Одна­ко, примеривать к Windows NT следует лишь в том случае, когда на вашем ПК установлено ОЗУ не менее 16 Мб.

Отказы из-за искажений в реестровых файлах (Восстановление реестровых файлов)

Если есть признаки ненормальной работы ПК при загруз­ке или частые отказы, имеет смысл провести восстановле­ние системного реестра пакета Windows 9x. Некоторые фир­мы для этого оставляют на жестком диске клоны или «об­разцовые» файлы для восстановления запорченных.

Для этого необходимо включить и перезагрузить компь-* ютер и как только на экране появится надпись

Starting Windows 95... (стартует виндоуз 95), следует нажать клавишу F8. В появившемся меню выберите: «Command prompt only» (ввод с командной строки),

перейдите в поддиректорий (не забудьте нажать клавишу ENTER):

cd c:\windows

наберите следующие строки, нажимая после каждой клави­шу ENTER:

attrib -h -r -s system.dat attrib -h -r -s system.daO attrib -h -r -s user.dat attrib -h -r -s user.daO

Эти команды удаляют атрибуты: скрытое™, защиты от записи, системные атрибуты «образцовых» системных фай­лов и реестровых системных файлов. Затем нужно скопиро­вать «образцовые» файлы в реестровые:

copy system.daO system.dat copy system.daO system.dat

восстановить атрибуты:

attrib +h +r +s system.dat attrib +h +r +s system.daO attrib +h +r +s user.dat attrib +h +r +s user.daO и перезапустить компьютер.

Пользователь или сервис-инженер, проводящий диагно­стическую процедуру с ПК, должен знать, что операцион­ная система Windows 9x не может быть установлена в тот же каталог, что и Windows 2000, NT 4.0 или в сетевой каталог Windows 2000, NT 4.0/Windows 9x.

Что касается Windows 9x то для работы с двумя операци­онными системами Windows 9x/Windows NT требуется фай­ловая система FAT16. Операционная система Windows 9x должна быть установлена в отдельный каталог файловой си­стемы FAT. В меню загрузки операционной системы Windows NT автоматически будет включена возможность выбора Windows 9x либо MS-DOS.

¦ В системе Windows 9x недоступны данные, хранящиеся в разделах файловой системы NTFS — они доступны только из сети.



Класс (Class)


В JAVA, сначала создается дизайн для объекта, а уже потом на основе этого дизайна создается объект. Дизайн - это класс, а объекты - экземпляры. В ActionScript функция может быть использована, как шаблон дизайна или может быть запущена напрямую. Технически в ActionScript нет классов, но класс это нечто вроде кастрированной функции, такая функция может быть использована только в качестве шаблона (template). Таким образом, если используете функцию ТОЛЬКО, как шаблон, то можете думать о ней, как о классе.

Проводя параллель с Flash, можно сказать, что символы в библиотеке, это ваши классы (то есть ещё не использованные шаблоны). Каждый раз, когда вы перетаскиваете один из них на вашу "рабочую площадку", он становится экземпляром (то есть новым объектом, созданным с помощью нового шаблона). Вы не можете видеть их в конечном SWF файле, если вы не "вытащили" их из библиотеки на рабочую площадку (кстати, они даже не экспортируются, до тех пор, пока вы не перетащите их на рабочую площадку или пока не установите для них привязку к библиотеке).

Пример: // ********** Class School ********** function School( name ) { this.name = name; } school1 = new School( "UTOO" ); // экземпляр, названный school1 school2 = new School( "FLU" ); // экземпляр, названный school2 school3 = new School( "TukU" ); // экземпляр, названный school3

В данном куске кода School, это класс, а school1, school2, и school3 - экземпляры класса School. Согласно общепринятым правилам кодирования, имена классов начинаются с заглавной буквы, так что вы можете легко отличить их от экземпляров, имена которых обычно начинаются со строчных букв. (Наверное, так получилось из-за того, что классы более "важны") school1.name is "UTOO" school2.name is "FLU" school3.name is "TukU" (University of Tuktoyuktuk!)

а в этом примере мы решили ни о чём не "спрашивать" School напрямую, потому что School, это класс и следовательно, это не реальный объект, только шаблон. Ведь мы же не станем пытаться найти _x координату чего-либо в библиотеке.



Классы


Забудьте то, что знаете о функциях. Забудьте, что они получают аргументы и возвращают ответ. Забудьте, что они хороший способ сократить блок кода до простого имени. Фактически они являются просто шаблонами, используемыми для задания свойств в объекте. Здесь ключевое слово - ШАБЛОН. Шаблон может использоваться для создания новых объектов, а так же для изменения существующих. С одним и тем же шаблоном можно создавать так много объектов, как это вам необходимо.

Шаблон нельзя съесть, пощупать или понюхать, это доступно только с объектами, сделанными с его помощью. Полезно подумать о шаблоне, как об идее, а об объекте, как о вещи в реальном мире, подобной вашему башмаку... Нельзя есть идею о ботинке, но можете погрызть свой башмак. Это просветлит ваши мысли, если они были запутаны до этого.

Это все немного абстрактно, однако повторюсь еще раз - это очень простое понятие. Например:

Template = function() { this.x = 5; this.y = 7; } inst1 = new Template( ); inst2 = new Template( ); inst3 = new Template( ); trace( inst1.x); // 5 trace( inst1.y); // 7 trace( inst2.x); // 5 trace( inst2.y); // 7

Слово, используемое в ООП терминологии для обозначения этих шаблонов - "Класс" (Class) (здесь следует думать о классификации, а не о классной комнате).

Класс (Class) это шаблон, который используется для создания новых объектов, называемых "экземплярами" (instances). Объекты и экземпляры суть одно и то же и могут быть взаимозаменяемыми (и часто!). Упомянутое слово "экземпляр" обычно предполагает объекты, созданные из класса с использованием оператора new, в то время как "объект" является более общим термином для всех объектов.

  Регистр в именах

Имена классов всегда должны начинаться с заглавной буквой, имена экземпляров - с маленькой. Если вы будете придерживаться этого правила, вам будет легко и просто обращаться к ним.

Несмотря на то, что класс это просто абстрактная идея в эфире, а экземпляр настолько реален, что оставляет след, когда шлепается на вас, в программе они имеют тенденцию выглядеть устрашающе одинаково.

Помните: ClassName - instanceName

Экземпляры происходят от классов, поэтому переходим к следующему разделу с экземплярами ...

<<    ООП во Flash 5    >>



Когда вы обращаетесь в сервисцентр?



Когда вы обращаетесь в сервис-центр?

Известно, что вероятность самостоятельно отремонтиро­вать П равна ~ 95%. А какие неисправности П составляют оставшиеся 5%? Их немного, но они есть всегда. Приведем некоторые из них. 1. Выход из строя БИС частного применения. Так называемой программируемой матрицы (ПМ). Эта БИС программируется фирмой-производителем П для каждой модели П. В продаже отсутствует.



КОМПЬЮТЕРЫ БОЯТСЯ МЫШЕЙ ТАРАКАНОВ НЕ ВЫНОСЯТ ТАБАЧНОГО ДЫМА И КОФЕ



КОМПЬЮТЕРЫ БОЯТСЯ МЫШЕЙ, ТАРАКАНОВ, НЕ ВЫНОСЯТ ТАБАЧНОГО ДЫМА И КОФЕ.

Постарайтесь застраховать блоки компьютера от проник­новения в них мышей или тараканов: на практике часты слу­чаи, когда системные платы выходили из строя именно от гнездования там мышей, а блоки питания с мощными по­левыми транзисторами — от попадания тараканов на фоль-гированные полоски затвора и истока транзистора. Проли­тый на клавиатуру сладкий кофе может вывести ее из строя, а табачный дым роковым образом может повлиять на рабо­тоспособность жесткого диска.

Переключения сетевых и сигнальных кабелей, включение-выключение компьютера

Кабели подключайте без особого нажима, чтобы не по­гнуть контакты или защитную окантовку. Внимательно оз­накомьтесь с инструкцией — в ней могут быть особенности, присущие данной конструкции конкретной фирмы. Пере­ключение или подключение любых сигнальных кабелей дол­жно осуществляться ПРИ ВЫКЛЮЧЕННОМ ПК.

При включении (подаче напряжения 220 вольт) ПЕРВЫ­МИ ВКЛЮЧАЮТ ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА -монитор, принтер. В ПОСЛЕДНЮЮ ОЧЕРЕДЬ ВКЛЮЧА­ЮТ СИСТЕМНЫЙ БЛОК.

Если есть возможность, осуществляйте «горячий» пере­запуск ПК. Что понимается под «холодным» и «горячим» запуском компьютера?

«Холодным» запуском называется включение компьюте­ра с помощью сетевого включателя или с помощью кнопки RESET на фронтальной панели системного блока. «Горячий» запуск осуществляется одновременным нажатием комбина­ции клавиш: ALT — CTRL — DEL.Правила обращения с жестким диском, срок жизни (надежность) винчестера

Если системная плата (Mother board — материнская пла­та) — сердце персонального компьютера, то жесткий диск — его мозг. На жестком диске записана системная часть про­граммного обеспечения (ПО) компьютера и основная инфор­мация в виде пакетов ПО, необходимых для работы пользо­вателя.

Держите запасной жесткий диск (если он еще не установ­лен в ПК) подальше от электроприборов.

МАГНИТНЫЕ ПОЛЯ ТРАНСФОРМАТОРОВ, ДИНАМИКОВ ГРОМКО­ГОВОРИТЕЛЕЙ, МОЩНЫХ БЫТОВЫХ ЭЛЕКТРОПРИ­БОРОВ МОГУТ ОТРИЦАТЕЛЬНО СКАЗАТЬСЯ НА РАБО­ТОСПОСОБНОСТИ ЖЕСТКИХ ДИСКОВ.

В паспорте жестких дисков обычно указывается гарантий­ный срок эксплуатации накопителя. Это может быть 30 000 часов или несколько больше, что в пересчете на годы дает впечатлительную цифру — 3 года.

Однако пользователь должен отчетливо представлять, что эта цифра является стреднестатистической величиной по от­ношению к данному типу накопителя и данной фирме, его производящей.

• Кто знаком со статистикой, тот понимает, что при данных статистических параметрах каждый десятый диск выходит из строя не через 3 года, как указано в паспорте, а через год. Причина этого в физическом разбросе параметров, гарантируемых фирмой-изгото­вителем.

• Во-первых, будьте готовы к этому.

• Во-вторых, «стихийные бедствия и катастрофы неде­ли» — как-то: резкие удары или толчки, папиросный дым, пролитый на компьютер кофе, большая влаж­ность в помещении — тоже не способствуют долголе­тию винчестера.

• В-третьих, существуют невидимые для глаза причины (назовем одну из них — ненормированный уровень мощного электромагнитного излучения), которые так­же укорачивают жизнь такого тонкого электронно-ме­ханического устройства, как жесткий диск.

Поэтому после приобретения жесткого диска уже в кон­це первого года эксплуатации будьте морально готовы к вы­ходу его из строя.

Протянет еще год — считайте, вам повезло.

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

Ну, а если винчестер вышел из строя, необходимо при­обретать новый?

Многие неопытные пользователи теряются в случае, если перед ними становится дилемма — какой жесткий диск луч­ше выбрать: с интерфейсом IDE или SCSI. Для большин­ства пользователей разница состоит в скорости работы и в цене. SCSI накопитель в два раза дороже IDE-накопителя .Во многих ПК есть встроенный контроллер IDE, а для SCSI не­обходимо покупать SCSI-контроллер. SCSI-дисковод слож­нее в конфигурировании и к SCSI можно подключить до семи устройств, а к IDE — не более двух (четырех) накопителей. Иногда старый IDE НЖМД не работает совместно с новы­ми IDE-моделями.

О неисправностях



Конфигурации для отдельных пользователей при работе в сети



Конфигурации для отдельных пользователей при работе в сети

Несколько конфигураций для отдельных пользователей могут быть созданы на компьютере, включенном в сеть Windows NT или Novell NetWare.

Если в конфигурацию включаются сведения о структуре главного меню и содержимом рабочего стола и/или папки «Сетевое окружение», сервер должен поддерживать исполь­зование длинных имен файлов.



Конфигурирование микропроцессора внешняя/внутренняя тактовая частота CPU (переключатели 6 7 и 8)



Конфигурирование микропроцессора внешняя/внутренняя тактовая частота CPU (переключатели 6, 7 и 8)

Переключатели 6, 7 и 8 используются для установки внешней (шинной) тактовой частоты CPU, равной 50, 60 или 66 мегагерц. По умолчанию установка зависит от указан­ного для данной системной платы микропроцессора Pentium (установленного на этой плате фирмой-производителем).

В таблице 27 приведены установки для переключателей 6, 7, 8 и перемычек J1N1:

Таблица 27.

External Bus Speed Bus Clock Multiplier Processor Speed Switch 6 Switch 7 Switch 8 J1N1
50 1.5 75 off on Off 4/5
60 1.5 90 off off Off 4/5
66 1.5 100 off on On 4/5
60 2 120 on off Off 4/5
66 2 133 on on On 4/5
60 5/2 150 on off Off 5/6
66 5/2 166 on on on 5/6
66 3 200 off on on 5/6


Конфликты между контроллерами различных типов



Конфликты между контроллерами различных типов

На некоторых СП возникают конфликты между внешними контроллерами SCSI и интегрированным контроллером IDE.



Конфликты по SCSIадресам



Конфликты по SCSI-адресам

При подключении внешнего устройства SCSI убедитесь в том, что установленный на нем адрес свободен.



Конструкция и работа современного 3 5" дисковода (НГМД)



Конструкция и работа современного 3,5" дисковода (НГМД)

Основные внутренние элементы дисковода — рама, шпиндельный двигатель, блок головок с приводом и плата электроники.

Шпиндельный двигатель — плоский многополюсный, с постоянной скоростью вращения 300 об/мин. Двигатель привода блока головок — шаговый, с червячной, зубчатой или ленточной передачей. Для опознания свойств дискеты на плате электроники возле переднего торца дисковода ус­тановлено три механических датчика: два — под отверстиямизащиты и индикатора плотности записи, и третий — для определения момента опускания дискеты.

Вставляемая в щель дискета попадает внутрь дискетной рамы, где с нее сдвигается защитная шторка, а сама рама при этом снимается со стопора и опускается вниз, металлическое кольцо дискеты при этом ложится на вал шпиндельного дви­гателя, а нижняя поверхность дискеты — на нижнюю голов­ку (сторона 0). Одновременно освобождается верхняя голов­ка, которая под действием пружины прижимается к верхней стороне дискеты.

На большинстве дисководов скорость опускания рамы никак не ограничена, из-за чего головки наносят ощутимый удар по поверхностям дискеты, а это сильно сокращает срок их надежной работы.

В некоторых моделях дисководов (в основном фирмы Теас) предусмотрен замедлитель-микролифт для плавного опускания рамы. Для продления срока службы дискет и го­ловок в дисководах без микролифта рекомендуется при встав­лении дискеты придерживать пальцем кнопку дисковода, не давая раме опускаться слишком резко.

На валу шпиндельного двигателя имеется кольцо с магнит­ным замком, который в начале вращения двигателя плотно захватывает кольцо дискеты, одновременно центрируя ее на валу. В большинстве моделей дисководов сигнал от датчика опускания дискеты вызывает кратковременный запуск двига­теля с целью ее захвата и центрирования. Дисковод соединяется с контроллером при помощи 34-проводного кабеля, в котором четные провода являются сигнальными, а нечет­ные — общими. Общий вариант интерфейса предусматривает подключение к контроллеру до четырех дисководов, вариант для IBM PC — до двух.

В общем варианте дисководы подключаются полностью параллельно друг другу, а номер дисковода (0...3) задается перемычками на плате электроники; в варианте для IBM PC оба дисковода имеют номер 1, но подключаются при помо­щи кабеля, в котором сигналы выбора (провода 10-16) перевернуты между разъемами двух дисководов.

Иногда на разъеме дисковода удаляется контакт 6, игра­ющий в этом случае роль механического ключа. Интерфейс дисковода достаточно прост и включает сигналы выбора устройства (четыре устройства в общем случае, два — в варианте для IBM PC), запуска двигателя, перемещения головок на один шаг, включения записи, считываемые/записываемые данные, а также информационные сигналы от дисковода — начало до­рожки, признак установки головок на нулевую (внешнюю) дорожку, сигналы с датчиков и т. п. Вся работа по кодирова­нию информации, поиску дорожек и секторов, синхрониза­ции, коррекции ошибок выполняется контроллером.

Таблица 16. Распределение сигналов на разъеме (ленточного кабеля) интерфейса накопителя на гибком магнитном диске – НГМД

№ контакта Назначение Направление
нечетные земля
2 резерв
4 управление индикатором к НГМД
6 не используется
8 индексный от НГМД
10 выбор накопителя 0 к НГМД
12 выбор накопителя 1 к НГМД
14 выбор накопителя 2 к НГМД
16 мотор включить к НГМД
18 направление к НГМД
20 шаг к НГМД
22 запись данных к НГМД
24 разрешение записи к НГМД
26 дорожка 00 от НГМД
28 защита записи от НГМД
30 чтение данных от НГМД
32 выбор головки к НГМД
34 готовность от НГМД

Стандартный формат дискеты типа HD (High Density — высокая плотность) — 80 дорожек на каждой из сторон, на каждой дорожке 18 секторов по 512 байт. Уплотненный фор­мат — 82 или 84 дорожки, до 20 секторов по 512 байт или до 11 секторов по 1024 байта.

Фирмой ЗМ разработана новая технология изготовления дискет и накопителей, которая обеспечивает увеличение ем­кости дискеты до 120 Мб. При этом новые дисководы бу­дут поддерживать существующий стандарт чтение/запись (1,44 Мбайт).

ГМД выполнен из майлара, который покрыт компаундом-лаком, содержащим магнитные вещества. В дисках неболь-шой емкости применяется окись железа, а в дисках большей емкомсти вместо железа используется кобальт.

Широкое распространение ГМД объясняется следующи­ми преимуществами по сравнению с другими магнитными накопителями:

• по сравнению с магнитофоном НГМД допускает режим записи/считывания с произвольной выборкой;

• быстротой и удобством записи, изменения, считыва­ния и копирования информации;

• большим объемом памяти (от 360 Кбайт до 120 Мбайт) при большой скорости записи информации;

• надежностью, малыми габаритами и весом (10—20 граммов). В 1990 г доля НГМД среди других видов на­копителей возросла до 40 %.



КОНСТРУКЦИЯ IBMСОВМЕСТИМОГО КОМПЬЮТЕРА В МИНИМАЛЬНОЙ КОНФИГУРАЦИИ (АППАРАТНАЯ ЧАСТЬ)



КОНСТРУКЦИЯ IBM-СОВМЕСТИМОГО КОМПЬЮТЕРА В МИНИМАЛЬНОЙ КОНФИГУРАЦИИ (АППАРАТНАЯ ЧАСТЬ)



Конструктор


Термин конструктор означает "нечто, что создаёт (конструирует) объекты". Мы знаем, что все объекты создаются из классов. Так что конструктор должен быть ЕОВСД (Ещё-Одним-Выдуманным-Словом-Для) класса. Ну, как бы это сказать... Точно так же, как и класс является частным случаем функции (только в ActionScript!), конструктор - это некая часть класса. Эта часть помогает "конструировать" объекты, как вы, наверное, уже догадались. Мы знаем, что объекты создаются при помощи объекта активации и аргументов. Но, стало быть и конструктор - это такой же объект активации. Да, так и есть. Трудности начнутся, когда мы вспомним, что объекта активации не существует, пока мы его не вызовем, а по окончании своей миссии он уничтожается - таких друзей в адресную книгу не вносят. Получается, что единственный способ "активировать" этот объект активации - вызвать свойство, которому он назначен, то есть объект, который даёт имя классу. Это прекрасно работает, потому что аргументы как бы "зажаты" между этими двумя объектами и так прочно друг к другу привязаны, что их часто рассматривают, как единое целое.

Почему нам так важно дать наиболее полное и точное определение конструктора и его работы? Потому что это ещё одно из недокументированных ключевых слов ActionScript, которые иногда бывают просто необходимы. Всякий экземпляр имеет свойство constructor и оно указывает на класс, который его создал, точнее на объект, давший имя классу. Когда вы рассуждаете о конструкторе с точки зрения экземпляра (как в случае с конструктором rover'а), то конструктор это класс, который создал экземпляр. Когда речь идёт о частях класса, то конструктор это скорее объект активации, наряду с аргументами и объектом имени. На самом же деле, подразумевается прототип или свойства, назначенные объекту имени класса (например, Dog.count), потому что они напрямую не участвуют в "конструировании" объекта. Кое-кто может сказать, что мы просто играем словами. Да, возможно, это так. В большинстве других объектно-ориентированных языках программирования конструктор и имя класса, это абсолютно разные понятия. В ActionScript они, конечно, тоже не взаимозаменяемы, но довольно тесно связаны друг с другом и разница между ними подчас очень невелика. Вот почему так важно оперировать точными определениями этих понятий. Фигурально выражаясь, можно сказать, что:

Class - это нечто вроде хижины. Constructor - это её часть, отвечающая за создание новых вещей.

Ранее мы задавались вопросом, каким именно образом экземпляры ссылаются на класс, который их создал. Ответ на этот вопрос - ключевое слово constructor. Он всегда используется изнутри объекта. Наилучшим образом он действует в границах экземпляра, который вы создали из вашего класса (хотя этим его действие, конечно же, не ограничивается, всегда полезно "пощупать" ActionScript в поисках чего-то новенького и неописанного!). Вот два способа, нахождения конструктора из экземпляра. Dog = function( ) { this.instNum = ++this.constructor.count; } // следующие два свойства на самом деле не являются частью 'конструктора' Dog.count = 0; // используется для подсчета созданных собак Dog.className = "Dog"; // используется для запоминания имени класса rover = new Dog( ); fido = new Dog( ); trace( rover.instNum ); // 1 (первая собака создана) trace( fido.instNum ); // 2 (вторая собака создана) trace( rover.constructor.className ); // Dog

Хотя использование конструктора не всегда нормативно, иногда без него просто не обойтись. Очевидным преимуществом доступа к свойствам Dog через instance.constructor.xxx вместо Dog.xxx является то, что если вы когда-нибудь измените имя класса Dog на Canine, вам не придётся перелопачивать весь ваш код в поисках кусков, где есть ссылка на Dog. Такой способ также делает ваш код намного более портативным на тот случай, если, например, вам захочется использовать его в другом классе или даже в другой программе.

Что интересно, у прототипа класса всё-таки есть конструктор, потому что это, в конце концов, такой же объект, как и любой другой - объект, который был кем-то создан. Когда вы определяете класс, он немедленно создаёт объект имени, но не создаёт объекта активации (который создаётся только когда его вызывают). Но вот объект прототипа всё-таки создаётся и это происходит, как только мы определяем класс. Куда указывает конструктор прототипа? Точно так же, как и экземпляр, он указывает на объект класса имени. Но как бы нам это проверить? Можно просто добавить в верхнюю функцию следующее выражение: trace( Dog.prototype.constructor.className ); // Dog

Довольно громоздко, не так ли? Но если присмотреться, мы увидим, что эта строка всего лишь говорит: "Отследить имя класса объекта, создавшего ("сконструировавшего") прототип Dog". Ладно, если это до сих пор не вполне понятно, то попробуем по-другому. Если перемещать эту строку вверх и вниз по коду, то мы увидим, что объект прототипа создается, как только мы определяем класс Dog, до того, как в прототипе устанавливаются какие-либо свойства.

И напоследок ещё немного странностей. Объект имени класса (Dog) не имеет свойства конструктора, даже не смотря на то, что это объект, который был создан. Имена функций также не имеют конструктора в ActionScript, даже не смотря на то что в других подобных языках программирования (например, в JavaScript) это не так. Причины объяснить не так просто. Попробуйте для начала перелопатить весь ActionScript так, чтобы ему было "удобно" в "крошечном" 200-килобайтном Flash Playr'е. Вот-вот, и я про то же! Давайте-ка лучше перейдём к следующему разделу про методы. Он интересный!

<<    ООП во Flash 5    >>



Квазиотказы при регистрации доступа в Windows NT



Квазиотказы при регистрации доступа в Windows NT

Если при регистрации пользователя не соблюдается пос­ледовательность протокола и верификация файлов (протоко­ла), то вероятность сбоя или квазизависания (неопределен­но долгая обработка события) в сети резко возрастает.

Как минимум, в целях безопасной работы необходимо выбрать протоколирование следующих событий:

• Logon и Logoff (вход в систему и выход из системы);

• Use of User Rights (использование прав пользователя);

• User and Group Management (управление пользовате­лями и группами);

• Security Policy Changes (изменение правил безопас­ности).

Протокол событий, произошедших в системе, можно просмотреть при помощи приложения Event Viewer (програм­ма просмотра протокола событий), находящегося в про­граммной группе Administrative Tools.



Лучше не ремонтировать?



Лучше не ремонтировать?..

Если при эксплуатации компьютера в летнее время про­исходит перегрев БП и его отключение из-за перегрузки, обеспечьте дополнительное охлаждение ПК. Во избежание нарушений оптимальной циркуляции воздуха внутри систем­ного блока проверьте наличие всех заглушек на задней па­нели ПК.

Износ БП определяется временем его непрерывной рабо­ты. В зависимости от конструкции, мощности, схемотех­нических решений и эффективности вентиляции срок служ­бы БП составляет 3—7 лет. При выходе БП из строя ПК ста­новится полностью неработоспосособным. Чтобы продлить время безотказной работы БП и самого ПК, необходимо использовать сетевые фильтры, стабилизаторы напряжения или источники бесперебойного питания.

Большинство блоков питания для ПК являются импуль­сными. По сравнению с линейными источниками питания они имеют меньшие габариты и вес, большие КПД и коэф­фициенты стабилизации по току и напряжению. Стандарт­ный импульсный БП включает в себя сетевой фильтр, вып­рямитель, мощные ключевые транзисторы (МКТ), схему управления МКТ, работающую по принципу широтно-им-пульсного (ШИМ) генератора, схему обратной связи, со­единенную с датчиками во вторичных цепях источника, вы­ходные стабилизаторы напряжения +5 и +12 В.

Допустим, блок питания вашего ПК вышел из строя. Что делать?

Постарайтесь заменить его целиком. Подберите источник в том же конструктиве, той же мощности (указана на кор­пусе) и с той же распайкой разъемов.



Макровирусы



Макровирусы

Макровирусы, поражающие файлы Word, Excel или Office 97, как правило, пользуются одним из трех приемов: в вирусе либо присутствует автомакрос (автофункция), либо переопределен один из стандартных системных макросов (ас­социированный с каким-либо пунктом меню), либо макрос вируса вызывается автоматически при нажатии на какую-либо клавишу или комбинацию клавиш.

Существуют также полувирусы, которые не используют всех этих приемов и размножаются, только когда пользова­тель самостоятельно запускает их на выполнение.

Таким образом, если документ заражен, при его откры­тии Word вызывает зараженный автоматический макрос AutoOpen (или AutoClose при закрытии документа) и запус­кает код вируса, если это не запрещено системной перемен­ной DisableAutoMacros. Если вирус содержит макросы со стандартными именами, они получают управление при вы­зове соответствующего пункта меню (File/Open, File/Close, File/SaveAs).

Если же переопределен какой-либо символ клавиатуры, то вирус активизируется только после нажатия на соответ­ствующую клавишу.

Большинство макровирусов содержат все свои функции в виде стандартных макросов Word, Excel, Office 97. Суще­ствуют, однако, вирусы, скрывающие свой код и хранящие его в виде немакросов.

Известно три подобных приема, все они используют воз­можность макросов создавать, редактировать и исполнять другие макросы.

Как правило, подобные вирусы имеют небольшой (иног­да — полиморфный) макрос — загрузчик вируса, который вызывает встроенный редактор макросов, создает новый мак­рос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает (чтобы скрыть следы при­сутствия вируса).

Основной код таких вирусов находится либо в самом мак­росе вируса в виде текстовых строк (иногда — зашифрован­ных), либо хранится в области переменных документа или в области Auto-text.



Массив аргументов


  Недокументированная особенность!

Необходимо сказать, что массив аргументов является недокументированной особенностью со всеми вытекающими из этого последствиями. Но, поскольку очень сильно похоже на то, что эта особенность будет работать и в будущих версиях Flash, хотя я и не даю никакой гарантии (она есть в дальнейших версиях ECMAscript и позволяет сделать то, чего невозможно добиться другими способами), используйте ее только тогда, когда без нее не обойтись. В таком случае если из Flash6 эту штуку все-таки вырежут, то вам придется поменять минимум кода.

Есть одна вещь, которая обособляет конструкторы вместе с методами - им можно слать сообщения. Методы могут даже возвращать сообщения (конструкторы, правда возвращают экземпляры объектов). Об этом мы говорили в разделе про аргументы - аргументы функции это сообщения и возвращаемая величина тоже есть сообщение. Теперь мы поближе рассмотрим механизм передачи этих сообщений.

На самом деле аргументы метода в ActionScript находятся в двух местах. Во-первых, создается новое локальное свойство (локальное по отношению к запущенному активируемому объекту) для каждого имени, которые перечислены в определении метода между скобками (arg1, arg2). Второе же место где это добро лежит - массив с именем arguments (будем его обозначать, как arguments[], чтобы было понятно, что это массив). В этом массиве аргументы хранятся в том же порядке, в котором они переданы в метод. То есть в вышеуказанном примере массив будет состоять из 2-х значений, сначала arg1 (в arguments[0]), а потом arg2 (в arguments[1]). Вот пример: test = function( arg0, arg1 ) { trace( arg0 +" "+ arg1 ); // вывод - "1ый 2ой" this.( arguments[0] +" "+ arguments[1]); // вывод - "1ый 2ой" } test( "1ый", "2ой" );

Отличительные черты характера этой недокументированной особенности следующие. Во-первых, наиболее интересным представляется возможность передачи заранее неизвестного количества аргументов. Например, хочется написать метод расчета среднего значения для непостоянного количества чисел. Это можно сделать например так: getAverage = function( _args_ ) { var total = 0; for(var i = 0; i < arguments.length; i++) { total += arguments[i]; } return total / arguments.length; } this.( getAverage(4,5,3,2,6,10) ); // вывод - "5" this.( getAverage(54,45,96) ); // вывод - "65"

Это главный аргумент "за" использование такой интересной особенности. Примите во внимание, что слово _args_ не обязательно, но я таким образом самому себе напоминаю, что в этот метод должно что-то передаваться. При выходе из метода эта переменная уничтожится, следовательно, никакого вреда она не несет, а склероз - вещь распространенная...

Есть правда и сюрпризы. Оказывается, массив аргументов - это НЕ МАССИВ! Можно узнать его длину, но нельзя использовать такие методы, как pop() или push(). Другой сюрприз, а возможно, что просто жучок - arguments[0] и первая переменная в списке переменных это не один и тот же объект. Поэтому, если в методе с аргументами (arg0, arg1) мы поменяем значение arg0, то arguments[0] все равно будет иметь старое значение. Имейте это в виду при написании программ... (может, это не баг, а фича! Интересно, а почему ничего не сказано про остальные аргументы? - прим.пер.)

Ну и последнее, что надо бы знать про этот "массив", это то, что у него есть одно интересное свойство с именем callee. Понятное дело, что набрать слово callee проще, чем prototype или __proto__, но про него читайте в следующем разделе...

<<    ООП во Flash 5    >>



Массив аргументов (Agruments array)


Ещё немного об аргументах. В ActionScript вы можете оперировать сразу несколькими аргументами, различающимися в функции. Вы спросите: "А зачем нам это?" Ну, скажем, у вас есть класс, который хранит имена людей. Так как полное имя человека содержит фамилию, имя и отчество, ваш класс скорее всего будет выглядеть вот так: function setName( first, middle, last ) { this.firstName = first; this.middleName = middle; this.lastName = last; } person0 = new setName( "John", "Hopkins", "University" );

... никаких проблем. Хотя постойте! А как же быть с теми, чьи отчества нам не известны? Вот незадача! Ну да ладно. Мы можем оперировать двумя аргументами, если нет отчества и тремя, если оно есть. Просто проверим, обработано ли последнее значение перед тем, как вписать отчество: function setName( last, first, middle ) { this.lastName = last; this.firstName = first; if (middle <> null) { this.middleName = middle; } } person0 = new setName( "university", "John", "Hopkins"); person1 = new setName( "Catraz", "Al" ); person2 = new setName( "Kahaule", "Al" ); person3 = new setName( "Krisnia", "Harry" );

Замечательно! Работает!.. Но как же быть с именами японцев и других "алиенов", которые пишут имя в конце, а фамилию в начале? Наверное, вы попробуете поменять "имя" на "фамилию". Теперь самое время вспомнить французов, а заодно и их ближайших родственников :))) Такие, как Жан Пьер Жозе деБрюйи или ещё лучше вот такое имя Гастон Бернар Жозе Рене даЛак ауФонтен Баге деБрюйи. Похоже, у нас появились проблемы. Непонятно, сколько имён мы передаёт в setName(). К счастью в каждой функции есть встроенный объект под названием (как вы, наверное, уже догадались) "аргументы" (arguments). Это объект (а не группа), хранящий прошедшие аргументы в форме: arguments[0] arguments[1] arguments[2]...

Заметьте, что объект "аргументы" доступен только внутри функции, что логично, так как прошедшие аргументы, локальны по определению. Теперь вы можете сотворить что-нибудь вроде: // поставим отчество после фамилии и имени function setName( family, given ) { this.familyName = family; this.givenName = given; if (arguments[2] <> null) { this.middleName = new Array(); for( var i = 2; i < arguments.length; i++) { this.middleName[i-2] = arguments[i]; } } } person0 = new setName( "Robin", "Sean", "Debreuil" ); person3 = new setName( "Debreuil", "Summer" ); person4 = new setName( "Debreuil", "Jean", "Pierre", "Josheph" ); person5 = new setName( "Debreuil", "Gaston", "Bernard", "Josheph", "Rene", "d'Lac", "au'Fontaine", "Baguette" ); trace( person5.middleName.toString() ); // возврат будет выглядеть так: // Bernard, Josheph, Rene, d'Lac, au'Fontaine, Baguette

Если ваш setName остаётся вообще без аргументов, то можно прикупить их или покопаться в Monty Python, кстати, не забудьте взять чек. Если вы думаете, что проблема уже решена, то вспомните об именах китайцев. У них последовательность такова: фамилия, имя, имя. Наверное, в этом случае вам придётся разрешить пробелы в именах (обычно они пишутся в кодировке Unicode, которую Flash 5 не поддерживает). Ну а как быть, например, с "артистом, которого звали 'Принц'"? Нравится он вам или нет, но как не восторгаться огромным списком таких имён во всех базах данных мира! Интересно, придуман ли для этого уже новый символ в Unicode?

Ну хорошо, а как обстоит дело с Flash? Какова альтернатива? Вот вы создаёте новый символ в библиотеке, передаёте ему аргументы, например, _x, _y и _level в зависимости от того, куда вы его помещаете. Такие параметры, как _xScale не установлены (и получают значения по умолчанию, в нашем случае - '100'). Однако, если дублировать экземпляр символа, то вся информация экземпляра передаётся новому экземпляру, как будто вы передаёте одну и ту же функцию (createInstanceOfSymbol) и нескольким аргументам, число которых будет зависеть от того, как именно вы решили всё это построить.



Memory modules — миниатюрные платы



Memory modules — миниатюрные платы с напаян­ными на них микросхемами памяти. В настоящее время объем памяти, реализованный в виде таких модулей, достигает 64-х, 128-и и 256-ти Mb (Ме­габайт).





Метод Callee


Внутри активированного конструктора, вам автоматически предоставляется доступ к двум объектам. Именно там, в области видимости активированного объекта, исполняются команды. Код также включает ссылку на второй экземпляр, созданный ключевым словом this, (по природе Flash'a, вам также предоставляется доступ к _root линейке - его можно спокойно проигнорировать). Этим обычно и исчерпываются ваши потребности. Однако, чего здесь не хватает, так это ссылки на задействованный класс. Сначала вам может показаться, что она присутствует в текущей области видимости, но помните, что эта область является отдельным временным активированным объектом и соответственно, все, что создано в этой области будет удалено как только она прекратит работу. Очевидно, что это - не класс. Можно попытаться найти его через ключевое слово this (this.constructor или this.__proto__). Хотя this является временным и безымянным контейнером, которому еще только предстоит стать экземпляром, его свойства constructor и __proto__ уже известны и заранее заданы. Таким образом, this.constructor указывает на class, а this.__proto__ указывает на class.prototype. Следует помнить, однако, что это - указание на тот class (или class.prototype), который создал данный экземпляр. Таким образом, если вы пользуетесь наследованием и одновременно используете множественные уровни конструкторов, вам понадобится кое-что еще.

К счастью, эта проблема решается использованием arguments.callee. К несчастью, это недокументированная функция и это влечет за собой все, что с такими ситуациями обычно связано. Возможно, вам будет проще избежать необходимости вызова callee путем изменения логики вашей программы. Как бы то ни было, она остается очень полезным инструментом при тестировании различных объектно-ориентированных структур, которых вы наверняка будете создавать сотнями. Она также является очень полезным инструментом отладки. На что же именно она указывает?

Arguments.callee указывает на функцию (да, класс или метод) к которому прикреплен текущий активированный объект. Таким образом, для того, чтобы конструктор нашел свой класс, в качестве пути достаточно просто указать arguments.callee. Это будет работать всегда, независимо от того, насколько далеко конструктор находится от экземпляра. Далее обычно каждому классу присваивается имя (например, Dog.name="Dog") и для определения того, какой конструктор работает в каком классе применяется команда (из активированного объекта Dog). trace( arguments.callee.name );

Это может быть очень полезно для отладки. Нахождение прототипа класса изнутри активированного объекта тоже не представляет трудности - arguments.callee.prototype. Arguments.callee также показывает метод, которым можно найти имя его метода, опять-таки простым использованием arguments.callee. Это не так полезно, поскольку свойства у методов обычно не прикрепляются ни к объекту с именем метода, ни к объекту прототипа, поэтому ссылки на эти объекты обычно не требуется. Кроме того, не существует надежного способа, которым метод находил бы объект с именем класса, к которому он принадлежит (за исключением прописывания ссылки вручную), что значительно ограничивает полезность применения arguments.callee в конструкторе. (Получить имя класса метода изнутри метода можно с использованием this.__proto__.constructor.x или, если наследование имеет два уровня глубины, с использованием this.__proto__.__proto__.constructor.x, но при этом у вас нет возможности убедиться в том, сколько уровней глубины имеет ваш метод.)

Ниже приводится пример кода для экспериментирования. Вероятно, callee покажется вам наиболее полезной при проверке структур и отладке. Class = function() { // найти класс из конструктора trace( "Class: " + arguments.callee.x ); // Вывод: Class: объект с именем класса // найти прототип класса из конструктора trace( "Class.prototype: " + arguments.callee.prototype.x); // Вывод: Class.prototype: прототип класса } Class.x = "Class name object"; Class.prototype.x = "Class prototype"; Class.prototype.method = function() { // найти имя метода из внутреннего метода trace("method: " + arguments.callee.x); // Вывод: method: объект с именем метода // найти статические свойства класса из метода trace("method: " + this.__proto__.constructor.x); // (работает, только если класс на один уровень выше экземпляра) } Class.prototype.method.x = "method name Object"; aa = new Class(); // Конструктор теста aa.method(); // Метод теста

<<    ООП во Flash 5    >>



Методы и свойства


До сих пор во всех наших примерах свойства классов принимали простейшие значения, такие как "rover" или 5. Имя класса (Dog, например) назначалось им свойству и прототип становился свойством этого класса (Dog.prototype в нашем случае). В ActionScript мы фактически можем назначить что-нибудь свойству. Это отличает ActionScript от многих других языков (Java, например), так что мы оказываемся перед необходимостью разъяснить, что подразумеваем под "свойством". В Java и С++ существует большая разница между методами и свойствами, чего нет а ActionScript-е. Так что же такое методы?

Метод очень похож на то, что мы обычно понимаем под функцией в программе, с одним отличием, методы всегда привязаны к классу и, как правило, вызываются из объекта-реализации этого класса. Методы призваны модифицировать состояние этого объекта и/или возвращать вычисленные значения. Они не используются для создания нового экземпляра класса. Методы никогда не используют свои прототипы, они не помещают свойства в собственное пространство имен (namespace). Методы не похожи на классы. Это просто программы, принадлежащие классу.

Можно сказать, они "выглядят" как классы. Они тоже созданы при помощи функции, однако они не вызываются при помощи оператора new. Их ключевое слово this ссылается на объект, который вызвал этот метод, никак не на созданный новый. Поскольку они, подобно классам, автоматически не возвращают новый объект, они могут возвращать какое-то значение, даже если оно пустое (void) (хотя это не требование, это просто хороший стиль программирования в более строгих языках). И последнее, методам, как и остальным свойствам классов, для их отличия от этих самых классов, лучше всего давать имена, начинающиеся с прописной буквы. Теперь давайте посмотрим маленький примерчик того, как создаются и вызываются методы, и потом разберемся во всех этих терминах, смысл которых, возможно, потихоньку начал от вас ускользать. // Класс Dog Dog = function( age ) { this.age = age; this.dogYears = this.calcDogYears( this.age ); } // метод Dog - вычисление возраста в собачьих годах Dog.prototype.calcDogYears = function( age ) { return ( this.age * 6 ); } // метод Dog - у собаки день рождения Dog.prototype.haveBirthday = function( ) { this.age++; this.dogYears = this.calcDogYears( this.age ); trace("С Днем Рождения!") } // создание экземпляра собаки (Dog) yeller = new Dog( 12 ); trace( yeller.dogYears ); // 72 yeller.haveBirthday( ); // метод выдает "С Днем Рождения!" trace( yeller.dogYears ); // 78

А заметили ли вы, что мы всегда определяем прототипы до того, как создадим экземпляр класса? Flash не может вызывать методы, которые еще не определены, поскольку он считывает и выполняет код в том порядке, как он написан (это все потому, что при загрузке swf файла вы никогда не можете быть уверены в том, загрузился ли определенный кусок кода). Посмотрев на конструктор класса в примере, вы можете углядеть противоречие вышесказанному. Метод calcDogYears вызывается из конструктора до того, как он будет описан в прототипе. Однако конструктор запустится лишь в тот момент, когда будет создан объект "yeller". Когда вы пишете код, вы должны рассматривать класс и его прототип как единый блок и определять их вместе. Методы прототипа обычно определяются после его свойств.

Хотя методы и можно поместить в экземпляр класса, такое происходит редко. Методы по природе своей более статические, чем строки или числа, так что они вероятнее всего останутся отдельным большим классом. Будет, возможно, ситуация, когда вы захотите установить методы во время выполнения, передавая их как аргумент конструктору. Это тот случай, когда вы раз и навсегда откажетесь от этого, окончательно запутавшись в многочисленных операторах if-else. Вскоре мы это разъясним.



MID files — стандартный файловый



MID files — стандартный файловый формат, ис­пользуемый для преобразования, накапливания и хранения информации, представляемой MIDI-noc-ледовательностями.





MIDI — Musical Instrument Digital



MIDI — Musical Instrument Digital Interface — му­зыкально-инструментальный цифровой интерфейс. Является международным аппаратно/программным стандартом, специфицирующим кабели и аппара­туру Для целей комбинирования нескольких уст­ройств, музыкальных электронных инструментов и компьютеров, использующих музыкальные коды и их наборы.





Мягкие ошибки обусловлены снижением



Мягкие ошибки обусловлены снижением намагниченно­сти информационных перепадов на поверхности магнитного слоя при многократном повторении информация все-таки может быть считана правильно с такого дефектного участка.

Жесткие ошибки не позволяют считать информацию с по­врежденного участка магнитной поверхности (слоя) в силу необратимости изменения характеристик магнитного носи­теля (на данном участке).





Модульность DOS (Все нижеприведенные рассуждения действительны и для ОС Windows XXX)



Модульность DOS (Все нижеприведенные рассуждения действительны и для ОС Windows XXX)

Сервис-инженер, да и пользователь, также должен иметь минимальную информацию о структуре операционной сис­темы.

Важнейшей отличительной чертой DOS (дисковой опе­рационной системы) является модульность. Модульность по­зволяет изолировать друг от друга отдельные части столь боль­шой и сложной программы, какой является DOS.

На примере одной из самых распространенных ОС, MS-DOS (начальные буквы означают название фирмы-произво­дителя), рассмотрим структуру ОС и место в ПК, где запи­саны программные модули.



MPEG Layer3 (MP3) — формат сжатия



MPEG Layer3 (MP3) — формат сжатия аудиофай­лов в 6—8 раз без потери качества (как субъективно­го понятия) звучания.





MPEG — Moving Picture Expert Group



MPEG — Moving Picture Expert Group — историчес­ки сложившееся название группы разработчиков — экспертная группа, занимающаяся подвижными изоб­ражениями.





MSDOS (Microsoft — Disk Operation System) — состоит из следующих основных модулей



MS-DOS (Microsoft — Disk Operation System) — состоит из следующих основных модулей:









Multimedia — комбинирование с



Multimedia — комбинирование с помощью компью­терных программ статических объектов, таких как тексты и изображения, с динамическими — звуко­вые, видеообъекты, анимация.





Наиболее уязвимые аппаратнопрограммные модули и узлы ПК и причины вызывающие их отказы



Наиболее уязвимые аппаратно-программные модули и узлы ПК и причины, вызывающие их отказы

1. Неустойчивая работа жесткого диска/Hard disk — де­градация меток или стирание магнитного слоя.

2. Ненадежная работа микросхем ОЗУ (RAM) — старе­ние микросхем.

3. Нарушение нормальной работы CMOS-памяти конфи­гурации — села батарейка поддержки, пробита микро­схема CMOS-памяти.

4. Порча программы BIOS или POST в ПЗУ(Ж)М)— на­пример, из-за сильных электрических наводок стерта часть программы или «пробита» часть памяти ПЗУ.



Наиболее уязвимые аппаратно-программные модули и узлы ПК и причины, вызывающие их отказы

1. Искажен загрузочный модуль на нулевой дорожке же­сткого или гибкого диска — деградация и старение маг­нитной записи, работа вируса.

2. Стерты фрагменты системных драйверов — из-за вне­запного выключения ПК, мощных электромагнитных по­мех, вирусов.

3. Внедрен вирус, перехватывающий процедуру нормаль­ной загрузки, источник — хакер или неопытный пользо­ватель.

Наиболее уязвимые аппаратные модули и узлы ПК и причины вызывающие их выход из строя



Наиболее уязвимые аппаратные модули и узлы ПК и причины, вызывающие их выход из строя









Наследование


Всё, что мы делали до сих пор можно охарактеризовать, как "композиция". В нашем случае это слово означает придумывание, составление объекта из более мелких компонентов, а не урок музыки. Наверняка вы уже используете композицию в ваших программах. Прежде, чем мы двинемся дальше, давайте дадим этому понятию точное определение, дабы потом не забыть, что же это такое. Как уже было сказано ранее, это понятие часто обозначается, как "имеется" (Has a). У объекта А имеется объект В. В доме имеется кухня, у собаки имеется хвост, у мятежника имеется причина. Трудно представить себе объект, у которого или в котором ничего не имеется (то есть ничего нет), в конце концов, во всём имеется (есть) что-то, всё из чего-то состоит. Однако всегда ли это так? Как насчёт самих идей? Например, какое отношение имеет "приспособление" к "холодильнику"? Какое отношение "разводной ключ" имеет к "разводу" или к "инструменту"? Какое отношение Джеймс Дин имеет к Рональду Рейгану? К Элвису? К Че Геварре? Как только мы начинаем организовывать идеи и концепции, одних "имеющихся" понятий становится недостаточно. Теперь нам потребуется "наследование" -- понятие из разряда "являющихся" (Is a).

Прежде чем продолжить, давайте познакомимся с этим понятием. Понятие "имеющийся" предполагает содержание одного предмета в другом. В машине есть двигатель, в двигателе есть поршни, в поршнях есть... э-э-э... такие маленькие круглые чёрные штуковины, кажется (прошу прощения, но этим ограничиваются мои познания в автомобилях). Понятия "являющиеся" используются, когда один объект является типом другого. Так автомобиль является транспортным средством, транспортное средство является машиной, машина является созданным человеком приспособлением с различными вращающимися частями (ещё раз прошу прощения!). Теперь самое время остановиться и поразмыслить о различных системах наследования. Вот некоторые разъяснения.

"Наследование" несложно осознать, но его трудно представить визуально. В реальном мире ничто не ведёт себя абсолютно одинаково. "Наследование", это скоре подсознательная система классификаций, если так можно выразиться. Очень просто увидеть млекопитающее, когда с ним разговариваешь, но ведь такого животного, как "млекопитающее" не существует. Есть только типы млекопитающих. Это обстоятельство, конечно же, не означает, что слово "млекопитающее" для нас бесполезно. Но ведь нет же в зоопарке клетки с надписью "млекопитающее". Раньше мы говорили об объектах, как о коробках или контейнерах. Это допустимо для "композиции", где вы помещаете одни объекты внутрь других. Однако такого рода определения не работают при использовании "наследования". Чтобы представить себе "наследование", нам понадобится немного другая модель.

Давайте-ка ещё раз убедимся, что мы поняли разницу между "имеющимися" и "являющимися" отношениями между объектами (рассмотрим хотя бы простейшие случаи). Изучите нижеприведённый список и определите, являются ли отношения между объектами в каждой строке "наследованием" или "композицией" - "являющимися" или "имеющимися". Попробуйте найти единое общее для каждой группы "являющихся" (наследований), а также для всех "имеющихся" (композиций) примеров. Животное, млекопитающее, собака, пудель Компьютер, материнская плата, процессор, микросхема Артист, певец, рок-звезда, Элвис Дом, кухня, раковина, пробка Книжная лавка, компьютерный отдел, стенд "Flash", книга по actionscript Книга, книга по компьютерной тематике, книга о Flash, книга по actionscript Книга, глава, параграф, предложение, слово Континент, страна, регион, город/деревня, улица, дом Азия, Китай, Сиань, ЗенгКуоАн, 15 http://www.macromedia.com/support/flash/ Приложение, документ, полоса прокрутки, указатель Окно, диалоговое окно, сообщение об ошибке, очередь на печать Еда, десерт, пирог, банановый крем 01 (204) 435-8301

Теперь давайте вместе подробно рассмотрим эти примеры (только не будем на них особенно задерживаться!)

Животное, млекопитающее, собака, пудель - Наследование.
Пудель - это собака, собака - это млекопитающее, млекопитающее - это животное. Какие свойства добавляются на каждом уровне? Попробуйте "прикрепить" вот эти: шерсть, глаза, дикий, домашний.
  Компьютер, материнская плата, процессор, микросхема - Композиция.
В компьютере есть материнская плата, на материнской плате есть процессор и так далее. Если у компьютера есть кнопка включения, есть ли она у процессора? (только ради бога не говорите, что у процессора их 5 миллиардов!). А теперь попробуйте ответить на подобный вопрос, если речь пойдёт о животных и собаках.
  Артист, певец, рок-звезда, Элвис - Наследование.
Элвис был рок-звездой, рок-звезда - это певец, певец - это артист. А все ли рок-звёзды - певцы? И куда в этом списке поместить актёров? Мы видим, что "Элвис" - это пример, а всё остальное - классы.
  Дом, кухня, раковина, пробка - Композиция.
В кухне есть раковина, а раковина домом не является (разве только для тараканов в студенческом общежитии). Теоретически, можно вырезать кухню и утопить её в океане. Но кухня останется кухней. Это объект в доме.
  Книжная лавка, компьютерный отдел, стенд "Flash", книга по actionscript - Композиция.
Каждый следующий физически находится в предыдущем. Можно, конечно, вообразить взаимообмен компонентов, например, устроить на кухне (которая давно на дне океана) компьютерный отдел. Огромное преимущество использования организованных объектов заключается в том, что один и тот же объект можно использовать в нескольких различных местах.
  Книга, книга по компьютерной тематике, книга о Flash, книга по actionscript - Наследование.
Все они являются типами или подтипами. Книга по actionscript - это книга по компьютерной тематике. А примеры в этой цепочке есть? Какой пример вы бы добавили?
  Книга, глава, параграф, предложение, слово - Композиция.
Этот пример с хитринкой. Перечисленные компоненты не всегда физические. Конечно, вы можете дотронуться до параграфа в любой книге, но, тем не менее, если мы говорим о книге вообще, то "наследование" не подходит. В книгах есть главы, предложения состоят из слов. Такая логика подходит и для предыдущих примеров на "Композиция", однако, в данном случае это более наглядно. На кухнях бывают раковины, и в моей кухне есть раковина. В обоих случаях раковина - это компонент кухни. Не путайтесь!
  Континент, страна, регион, город/деревня, улица, дом - Композиция.
Хотя на этот раз абстрактное мышление просто необходимо, это всё же композиция. Совершенно очевидно, что улица - это не разновидность страны. Таким образом одни концепции могут быть компонентами других концепций. Внутри контейнера "континент" находятся "страны". В свою очередь "страны" содержат "регионы"...
  Азия, Китай, Сиань, ЗенгКуоАн, 15 - Композиция.
Такая же иерархия, как и в предыдущем случае, только здесь мы видим конкретные примеры. Каждая концепция теперь снабжена объектом, но объекты эти являются компонентами и содержатся один в другом. На континенте Азия есть страна Китай. В стране Китай есть город Сиань.
  http://www.macromedia.com/support/flash/ - Композиция.
В домене macromedia.com есть раздел под названием support. А в нём вы найдёте что-нибудь по Flash. Сюда вы можете обратиться, если ничто другое не помогает. Здесь вы можете найти копию справочного руководства. Подумайте, что представляет собой структура каталогов на вашем жёстком диске - "Композиция" или "Наследование"? И любая ли система каталогов может считаться композицией? Подумайте хорошенько.
  Приложение, документ, полоса прокрутки, указатель - Композиция.
Да, программы объектно-ориентированы... в документах есть полоса прокрутки, на полосе прокрутке есть указатель (это такая маленькая штука, которую вы тянете мышкой)...
  Окно, диалоговое окно, сообщение об ошибке, очередь на печать - Наследование.
Да, программы тоже используют наследование. Очередь на печать - это тоже разновидность окна, равно как и остальные (диалоговое окно и сообщение об ошибке).
  Еда, десерт, пирог, банановый крем - Наследование.
Пирог - это еда, десерт - это еда. Обратите внимание, что структура древоподобна. Просто помните, что десерт может быть разный, равно как и пирог. Все эти структуры древоподобны.
  01 (204) 435-8301 - Композиция.
Это всё равно, что сказать "Северная Америка > Манитоба > Майами > мой старый телефонный номер". Телефонная система очень похожа на почтовую. Чтобы вас найти, здесь используется строго структурированный каталог имён.
 

Наследование, как и объектно-ориентированное программирование вообще, становится необходимым инструментом, когда у вас появляется достаточно классов подобных друг другу и они начинают как бы само-организовываться (мечты, мечты!). Методика в любом случае достойна упоминания, потому что многие программы на основе Flash довольно просты и невелики в объёмах. Более того, нагромождать многочисленные уровни наследования для того лишь, чтобы привязать кнопки к страницам, это абсурд. Если же вы способны написать подобную маленькую программу, вы почувствуете себя начальником почтового отделения в небольшой деревеньке. Чтобы доставить почту, вам не нужно ничего, кроме имени получателя. В случае каких-либо изменений, если, например, кто-то приехал в город или изменил место жительства или же улица поменяла название, у вас есть возможность просто запомнить всё это. Вы станете смеяться над почтальонами больших городов, которые принимают всерьёз все эти нудные и непонятные правила и часами спорят из-за незначительного изменения в списке почтовых индексов. С другой стороны, ведь почта так и так доходит до адресата, и в больших и в малых населённых пунктах. Но до тех пор, пока вы знаете, что ваша деревенская система отличается от городской, вы можете быстро и чисто справляться со своими задачами, отвечая возрастающим потребностям, это факт. В конце концов, вам не нужно разделять млекопитающих до бесконечности - от собак до атомов. Одно из первостепенной важности умений в объектно-ориентированном программировании - умение найти золотую середину между сложностью и завершённостью (кстати, перед подобной же дилеммой стоит и автор, которому нужно написать короткую главу об ООП в ActionScript!).

Сделать: типы символов (?)

<<    ООП во Flash 5    >>



Настройка сервера WINS



Настройка сервера WINS

Для установки сервера WINS следует выполнить следую­щие действия:

• Установить указатель на значок «Сеть» панели управ­ления и дважды нажать кнопку мыши.

• Выделить протокол TCP/IP и нажать кнопку «Свой­ства».

• Открыть вкладку «Конфигурация WINS».

• Убедится, что заполнены поля «Главный сервер WINS» и «Второй сервер WINS».

В противном случае при перезагрузке компьютера уста­новленные параметры службы WINS заменяются на парамет­ры с отключенным распознаванием WINS.

Устранение проблем с помощью диагностических программ пакета ManageWise

ManageWise — это эффективное средство управления се­тью от Novell и Intel, позволяет автоматически выявлять в сети более 400 критических ситуаций разного типа. MangeWise позволяет:

• управлять серверами NetWare, очередями печати и ус­тройствами SNMP;

• анализировать сетевой график;

• проводить инвентаризацию программных и аппаратных средств на серверах и настольных системах;

• удаленно управлять настольными системами пользова­телей;

• предотвращать проникновение в систему вирусов.

По каждой проблеме, встречающейся в сети, выдаются подробные отчеты с предупреждениями и рекомендациями по их устранению. Поскольку MangeWise представляет со­бой набор файлов NLM, его можно легко установить на любом устройстве с NetWare 3 или 4 (в том числе удаленным способом). Вот основные возможности управления сетевой инфраструктурой ManageWise:

• устранение сетевой перегрузки;

• идентификация загружающих сеть пользователей;

• мониторинг обмена сообщениями между сетью и стан­цией;

• идентификация проблем в масштабе всей сети;

• декодирование множества протоколов;

• управление концентраторами, маршрутизаторами и те­лекоммуникационными устройствами посредством SNMP.Вирусы в среде Windows, способы внедрения

Каким образом создаются Windows-вирусы? Для того что­бы оставить выполняемый код в памяти Windows, существует три способа, которые (за исключением Windows NT) уже применялись различными вирусами.

Самый простой способ — зарегистрировать программу как одно из приложений, работающих в данный момент. Для этого программа регистрирует свою задачу, окно которой может быть свернутым, регистрирует свой обработчик сис­темных событий и т. д.

Второй способ — выделить блок системной памяти при помощи DPMI-вызовов и скопировать в нем свой код (ви­рус Ph33r).

Третий способ — остаться резидентно как VxD-драйвер (Windows З.хх и Windows 9x) или как драйвер Windows NT.

Перехват обращений к файлам производится одним из двух способов: либо перехватываются вызовы INT 21h (Hook_V86_Int_Chain, Get/Set_V86_Int_Vtctor, Get/ Set_PM_Int_Vector), либо перехватывается системный вызов API. Затем резидентные Windows-вирусы действуют пример­но так же, как и DOS-вирусы: перехватывают обращения к файлам и заражают их.

Для обнаружения уже имеющейся в памяти резидентной копии используются примерно те же способы, что описаны выше, за исключением VxD-вирусов.

Известные VxD-вирусы загружаются в память при загрузке Windows. Для этого они записывают команду запуска в файл конфигурации Windows SYSTEM.INI. Если в этом файле уже есть команда запуска вирусного VxD-файла, то вирус не производит повторной регистрации VxD-файла.



NAV



NAV

По объему продаж — второй антивирус в мире (после SCAN). По качеству детектирования вирусов весьма средняя программа. Вызывает ложные срабатывания. По остальным пунктам замечаний не имеет. Удобный пользовательский интерфейс, большое количество дополнительных функций, версии под все популярные платформы.

Из-за недостаточно качественного детектирования виру­сов пользователи NAV часто попадают в ситуацию, когда для обнаружения и лечения вируса им приходится обращаться к антивирусным продуктам других фирм.

Фирма-разработчик — Symantec.



Navigation


ООП во FLASH 5
Введение
Объекты
Классы
Экземпляры
Область видимости
Наследование
Прототипы
Старшинство
Переназначение
Защита
Аргументы
Конструктор
Методы
Свойство Proto
Массив аргументов
Метод Callee
Оператор New
Метод Extend
Метод Super
Особые методы
Заключение
Глоссарий
О проекте
 
© 2001
Debreuil Digital Works







Не открывается или не закрывается дископриемник



Не открывается или не закрывается дископриемник

Прежде всего необходимо проверить поступление сигна­лов при нажатии клавиши OPEN/CLOSE на МСУ. При от­сутствии таких сигналов следует убедиться в исправности МСУ.

Затем необходимо посмотреть, проходит ли при нажатии клавиши OPEN/CLOSE сигнал с драйвера на двигатель заг­рузки. Если при поступлении сигнала двигатель не включа-ется, проверке подлежит исправность двигателя (возможно, что заклинило дископриемник). Если сигнал на включение отсутствует, необходимо проверить цепь между двигателем загрузки и МСУ (в частности, драйвер двигателя).



Неисправность ПК может быть устранена



Неисправность ПК может быть устранена либо ремонтом поврежденной компоненты, либо ее заменой.

Систематически проявляющаяся неисправность легче поддается диагностике, чем эпизодически действующая.

Отказы — это тоже неисправность, но двоякого рода.

Эпизодические отказы, редко повторяющиеся, могут и не мешать нормальной работе пользователя, тем более, что предотвратить их полностью невозможно. Но если частота этих отказов превышает, скажем так, порог чувствительнос­ти пользователя, это уже превращается в проблему,которую необходимо решать. Такие отказы называются системати­ческими.

Впрочем, и один-единственный отказ может причинить столько хлопот ,что его предотвращение вполне может оку­пить все труды пользователя. И поскольку в нашей «Диагностике...» ОТКАЗАМ отводится основное место, в конце главы мы приведем возможный перечень их причин.

В персональном компьютере (ПК) с его «морем» или «океаном» памяти (до 2-4 Гигабайт) только маленькая часть, ФИЗИЧЕСКИ ОТЛИЧНАЯ от той, что расположе­на на магнитном носителе (жестком диске), является неразрушаемой — так называемая базовая система; и такая же маленькая часть НА МАГНИТНОМ НОСИТЕЛЕ — переза­писываемая системная область. По отношению к основной памяти эти части занимают ничтожный процент (пример­но 0,1-1%).

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

При тестировании ПК программой POST (а она зависит от конкретной BIOS) предусмотрена следующая звуковая сигнализация:

1. Длинный сигнал или продолжительные короткие гуд­ки — неисправен блок питания.

2. 1 короткий сигнал или 1 длинный и 2—3 коротких — неисправен видеоадаптер.

3. 1 длинный и 1 короткий сигнал — неисправна систем­ная плата.

4. 1 короткий сигнал (экран дисплея не светится) — не­исправен дисплей.

5. 3 коротких сигнала — ошибка при обращении к ОЗУ.

6. 9 коротких сигналов — ошибка в чековой сумме ПЗУ BIOS и т.д.

В данных случаях мы имеем достаточно конкретное ука­зание на место, в котором локализована неисправность. В случае неопределенности причины отказа такая локализация может быть затруднена.



Неисправности возникающие при ремонте



Неисправности, возникающие при ремонте

Неисправности могут возникнуть при проведении диагно­стики и ремонта П, производимых слабо подготовленным ремонтником. Ниже приводятся неисправности такого рода:1. Во избежание выхода из строя блоков, узлов и плат разбора и сборка П производится только при отключен­ном от электросети П.

2. Во избежание взрывов радиокомпонент все паяльные работы производятся только при отключенном от элек­тросети П.



Некоторые особенности пользования утилитой NDD



Некоторые особенности пользования утилитой NDD

Когда файл открыт, соответствующая служебная инфор­мация копируется с диска в память (ОЗУ). При добавлении к концу файла новых данных обновляется только информа­ция, находящаяся в памяти. Служебная информация на дис­ке не обновляется до тех пор, пока файл не будет закрыт. Norton Disk Doctor использует для диагностики только ин­формацию, записанную на диске.

Поэтому, когда информация на диске не соответствует информации в памяти, Disk Doctor выдает ошибку, обыч­но «Потерянные кластеры» (tost claster). Ошибки в действи­тельности не существует, сообщение об этой ошибке исче­зает после того, как файлы будут закрыты.



Необходимо помнить что резидентные



Необходимо помнить, что резидентные вирусы отличают­ся гораздо большим коварством и изощренностью, чем нере­зидентные.



Неправильная конфигурация системы



Неправильная конфигурация системы









Несовместимость драйверов



Несовместимость драйверов

В процессе установки может выясниться, что модем не набирает номер или не устанавливает связь.

Для выяснения причин в справочной системе найдите раздел «Устранение трудностей, возникающих при работе с модемом».

При неправильной настройке модема ряд возможностей программ связи может быть недоступен. Описанные ниже действия помогут провести проверку настроек модема и про­грамм связи Windows 9x.

Прежде всего необходимо проверить, совместимые ли файлы драйверов Windows 9x были загружены, так как часть драйверов, используемых в программах связи Windows 3.1, несовместимы и могут привести к прекращению работы мо­дема или последовательных (СОМ) портов.

Чтобы убедиться в наличии совместимых файлов, исполь­зуемых программами связи:

• Проверьте размеры и дату создания файлов COMM.DRV и SERIAL.VXD в каталоге System и сравните их с ис­ходными на дискете или компакт-диске с Windows 9x.

• Проверьте наличие следующих строк в файле System.ini:

[boot]Comm.drv=Comm.drv

[386enh]

device=*vcd

• Для возврата к исходным драйверам Windows 9x про­смотрите описание драйверов последовательных портов в списке устройств (значок «Система» на панели управ­ления).

• Запустите программу «Установка оборудования» с па­нели управления для определения и установки драйве­ров Windows 9x.

Драйвер SERIAL.VXD не включен в файл System.ini. Вместо этого Windows 9x загружает его по мере необходимо­сти, используя реестр. Соответствующий файл с расшире­нием *.vcd также отсутствует в System.ini, поскольку он встроен в файл VMM32.VXD.

Удалите из списка устройств все лишние модемы, чтобы они не могли приводить систему к конфликтам.

Чтобы убедиться, что модем доступен:

• Дважды щелкните значок «Система» на панели управ­ления и выберите вкладку «Устройства».

• Выберите из списка модем и нажмите «Свойства».

• Убедитесь, что устройство работает нормально. Для проверки правильности используемого порта:

• Дважды щелкните значок «Модемы» на панели управ­ления.

• Выберите нужный модем и нажмите «Свойства».

• На вкладке «Общие» проверьте, правильно ли указан порт. В противном случае выберите порт и нажмите кнопку ОК.

Чтобы проверить, правильно ли установлены адрес I/O последовательного порта и прерывания IRQ:

1. Дважды щелкните значок «Система» на панели управ­ления.

2. Выберите вкладку «Устройства», а затем — «Порты СОМ и LPT».

3. Выбрав необходимый порт, нажмите кнопку «Свой­ства».

4. Выберите вкладку «Ресурсы» для просмотра текущих настроек ресурсов порта. Для задания правильных на­строек обратитесь к документации по модему.

5. Убедитесь, что в списке конфликтующих устройств на вкладке «Ресурсы» отсутствуют конфликты в ресурсах с другим оборудованием.

6. При наличии таких конфликтов нажмите кнопку «Из­менить значение» и выберите такую конфигурацию, которая не приводит к конфликтам в ресурсах.

Устанавливать модем на последовательный порт COM3 не I рекомендуется, поскольку к нему обычно подключена мышь либо другое оборудование (к этому последовательному пор­ту обычно подключается и сканер).

Обычно С0М1 и COM3 порты используют одинаковое прерывание IRQ и на большинстве компьютеров не могут использоваться одновременно. То же относится и к портам COM2 и COM4. Измените, если это возможно, настройки IRQ портов COM3 и COM4 так, чтобы избежать конфлик­тов. Кроме того, некоторые типы видеоадаптеров могут приводить к конфликтам в адресе с портами COM4.

Чтобы обойти эту проблему, воспользуйтесь другим пос­ледовательным портом или замените видеоадаптер.



Несовместимость возникающая при смене контроллера



Несовместимость, возникающая при смене контроллера

Если вы форматировали SCSI-диск на одном контролле­ре, а читаете или пишите данные на другом, может возник­нуть несовместимость форматов нижнего уровня. Чаще всего такие проблемы возникают с магнитооптическими дисками.



Нет места для системы на дискеадресате/ Unsufficient disk space for system



Нет места для системы на диске-адресате/ Unsufficient disk space for system

Особое место в ряду проблем с жестким диском имеет выдача сообщения утилитой DOS SYS о том, что для заме­ны системных файлов DOS на диске нет достаточного места для системы. Для устранения проблемы создайте загрузоч­ную дискету с помощью команды DOS format a:/s или запу­стите Disk Tools и выберите «Создание загрузочного диска».

Если это не помогает, запустите Aidstest, Antiviral Toolkit Pro, Dr. Web, Adlnf или Norton AntiVirus.



«Not ready error (reading/writing)



«Not ready error (reading/writing) DEVICE» (ошибка го­товности (чтение/запись) устройство С:, D:, Е:»)

Эта ошибка обычно относится только к гибким диске­там. DOS сообщает, что диск не готов принимать или передавать данные, вероятно, потому, что защелка дисковода не закрыта или дискета плохо вставлена. Удостоверьтесь, что дискета вставлена хорошо и защел­ка дисковода закрыта, затем нажмите клавишу R (по­вторить).

1. Если это жесткий диск, дайте ему охладиться в те­чение нескольких часов и посмотрите, не исчезла ли ошибка. Если диск работает, это означает, что микросхема на диске не выдерживает нагрева. Ско­пируйте весь диск, подкаталог за подкаталогом, по­зволяя диску остывать, если это необходимо. Еслиохлаждение жесткого диска не улучшает положения, вероятно, имеется физическая ошибка. 2. Можно повторить процедуру для жесткого диска, дав ему, наоборот, прогреться. Физические пара­метры диска могут «плавать» и поэтому отличаться: холодный диск имеет одни параметры (дорожки «сжимаются»), разогретый диск имеет другие пара­метры (дорожки «расширяются»). Если диск рабо­тает, это означает, что диск сильно меняет пара­метры при нагреве.

Скопируйте весь диск, подкаталог за подкаталогом, не позволяя диску остывать, если это необходимо. Если разогрев жесткого диска не улучшает положения, ве­роятно, имеется физическая ошибка. Запустите Calibrate опцию «Исправления сбойного сек­тора». Если ошибка еще существует, используйте про­цедуру «Восстановление (извлечение) данных со сбой­ного диска».

Отказы при установке, запуске и эксплуатации CD-ROM

Какие интерфейсы используются для подключения CD-ROM к ПК? Для подключения накопителей CD-ROM ис­пользуются три разновидности интерфейсов: SCSI/ASPI, IDE/ATAPI, специализированные интерфейсы.

SCSI — наиболее универсальный и наиболее производи­тельный интерфейс, позволяет подключить до семи диско­водов к одному основному адаптеру. Интерфейс ASPI состо­ит из двух частей:

• программа-драйвер ASPI-Manager;

• драйверы для отдельных подключаемых к интерфейсу устройств.

Покупая CD-ROM с интерфейсом SCSI, убедитесь в том, что ASPI-драйвер совместим с операционной системой ваше­го ПК, a ASPI-Manager основного адаптера соответствует SCSI-драйверу накопителя.

Интерфейс IDE/ATAPI является дополнением к интер­фейсу ATA (AT Attachment), к которому обычно подключа­ются НЖМД. ATAPI — это стандартный расширенный ин-

терфейс (Enhanced IDE) для CD-ROM. Он преобразует ко­манды SCSI/ASPI к стандарту IDA/ATA. В основном IDE/ АТА-накопители на CD-ROM подключаются ко второму разъему интерфейса, а к первому разъему подключается НЖМД.

Необходимо помнить, что к одному вторичному IDE-разъему можно подключить не более двух дисков. Специа­лизированные интерфейсы обладают небольшими возможно­стями и малым быстродействием.

Основной причиной отказов при работе CD-ROM обычно являются дефекты на поверхности компакт-диска (диска CD-ROM).

Другой часто встречаемой причиной является несовмес­тимость программных драйверов CD-ROM с инсталлирован­ной на компьютере операционной системой.

Восстановление работоспособности жесткого диска с помощью программы SpeedStore

Подпрограмма HardPrep

В случае почти полной потери работоспрсобности жест­кого диска можно попытаться провести его реинициализа-цию (форматирование на низком уровне) по старым меткам с помощью программы HardPrep.



О проекте


Авторские права на учебник принадлежат его создателю
Робину Дебройлу (Robin Debreuil).

Первоисточник на английском: http://www.debreuil.com/docs/
Русское зеркало: http://debreuil.flashmaster.ru/

ДАННАЯ РЕДАКЦИЯ УЧЕБНИКА ПРЕДНАЗНАЧЕНА ИСКЛЮЧИТЕЛЬНО ДЛЯ ЛИЧНОГО OFF-LINE ПОЛЬЗОВАНИЯ, ЛЮБОЕ КОММЕРЧЕСКОЕ ИСПОЛЬЗОВАНИЕ И ПУБЛИКАЦИЯ В СЕТИ НЕДОПУСТИМЫ !

Перевод учебника на русский язык сделан группой участников мейл-конференции "RuFlash" в составе: Alexander Babaev [ 15, 17 ] EugeneP [ 13, 14 ] Nikolay & Alex [ 4-8, 10-12, 18-22 ] ОСОБАЯ БЛАГОДАРНОСТЬ ! VM [ 1-3, 9, 16, общая редакция ]

Оформление: VM Studio

10.12.2001

Мейл-Конференция "RuFlash" ("RUSSIAN FLASH NEWS")
существует с мая 1999 года, на данный момент число ее подписчиков составляет более шестисот человек. Конференция предназначена для оперативного обмена новостями, мнениями между русскоязычными пользователями пакета Macromedia Flash, обсуждения технологии работы в нем и других аналогичных или связанных с ним программах. Разрешается обсуждение вопросов близких к тематике конференции или каким либо образом влияющих на развитие и распространение Flash технологии. Подписчиком конференции может быть любой, без каких либо ограничений, "житель" Сети, имеющий адрес электронной почты, если он согласен с ее Правилами и соблюдает их при общении с другими подписчиками.

<<    ООП во Flash 5    >>



Объекты


personA = new Object();

personA - это новый Объект. Теперь можно добавить объекту новые свойства, как это показано ниже: personA.name = "Ann"; personA.age = 31;

Это означает, что: personA имеет свойство name; (имя), значение которого равно "Ann" personA имеет свойство age (возраст), значение которого равно 31

Достаточно просто. То же самое можно сделать по другому: personA = { name:"Ann", age:31 }

  Примечание

ActionScript игнорирует пробелы и табуляцию. Например, создать объект personA можно было бы так: personA = { name : "Bob", site : "bob.com", favs : { site1 : "flash.com", site2 : "flesh.com" } }

Это иногда полезно для облегчения понимания, но имеет свой недостаток - невозможность построчных комментариев. Полезно запомнить следующий синтаксис для быстрого создания объектов: o = { x:x, y:y, z:{a:a, b:b} }

Обратите внимание на скобки, запятые, двоеточия и отсутствия точки с запятой в конце строки.

Фигурные скобки { } быстрый и удобный способ создания объекта. Вот другой объект: personB = new Object(); personB.name = "Bob"; personB.age = 25; personB.hobby = "drinking";

А это то же самое: personB = { name:"Bob", age:25, hobby:"drinking" }

Это было просто. Теперь у нас есть два объекта: personA и personB. Каждый из них имеет два свойства: name и age, а PersonB имеет еще одно дополнительное свойство hobby (хобби). Если вам что-то не понятно, посмотрите пример еще раз, потому что следующее предложение содержит очень важную информацию.

Также где-то есть третий объект, имеющий два свойства - personA и personB. Это дает нам первое представление об ООП в работе. Все содержится внутри объекта.

Если ваши глаза начали стекленеть, подождите... Давайте рассмотрим такую метафору. Представьте, что кто-то переезжает. Это событие влечет за собой перевозку вещей. Здесь есть два подхода. Первый - подогнать грузовик (желательно со съемным тентом) к входной двери и затем погрузить в него вещи, ящики, полки и заплатить шоферу. Это самый быстрый и самый простой способ переезда и он прекрасно работает в жизни. "Нормальный" способ переезда - рассовать вещи по коробкам и подписать (какими-нибудь закорючками) все коробки, согласно их содержанию. Это включает принятие тысячи решений и неотложных действий в час и это хороший тест для супругов, если вы когда-нибудь такой искали.

Боб и Энн переезжают. Давайте поможем им разложить их вещи по коробкам. Объекты, подобны коробкам, так что это не причинит вреда вашему обучению. Общеизвестно, что американцы самые "переезжающие" люди в мире (ok, после тибетских кочевников). Трое из пяти американцев переезжают каждые пять лет, совершаются миллионы и миллионы переездов. Дальнейшее исследование показало, что в каждом из этих переездов, имеется ящик с пометкой "important stuff" (важные вещи). Учитывая то огромное значение, которое имеет для американцев ящик "important stuff", мы и начнем с него. importantStuff = new Object(); importantStuff.money = 500; importantStuff.papers = 96; importantStuff.annPassport = "er246vjl"; importantStuff.bobPassport = "kl554mkt";

Заметили, что мы добавили несколько единиц в ящик? А если мы поместим туда что-нибудь еще, что уже находится в другом ящике, например шкатулку с побрякушками? importantStuff.jewelryBox = 1;

Это кажется правильным, но если Энн захочет найти свое ожерелье, сможет ли она сделать это? Мы поместили список вещей в каждый ящик, но ее ожерелья нет в списке. Что мы действительно должны сделать - создать список того, что находится в шкатулке с побрякушками, что-нибудь вроде этого: importantStuff.jewelryBox = new Object(); importantStuff.jewelryBox.necklace1 = "Pearl"; // подделка importantStuff.jewelryBox.necklace2 = "Diamond"; // подделка

Теперь шкатулка с побрякушками имеет список ее содержимого (конечно же не забываем комментировать при необходимости). Это не лучшее решение для Энн, потому что список ее драгоценностей, находится внутри закрытой шкатулки. Ей потребуется все открыть, чтобы найти свое ожерелье. Однако является удачей для нас то, как объекты ведут себя в ActionScript, поэтому оставим ящики так, как они есть. Надеюсь у нее нет возражений на этот счет.

Мы поместили объект в объект - ящик в ящик. Теперь не проблема увидеть другой путь. Предложите им использовать два транспортных средства для переезда: автомобиль и грузовик. Часть ящиков сложить в один, часть в другой. "Important stuff" находится в автомобиле, так что ожерелье может быть найдено в car.importantstuff.jewelrybox.necklace1. Это очень похоже на то, что произошло, когда мы создали personA и personB. Мы создавали свои объекты просто "где-нибудь" и это где-нибудь всегда находится внутри объекта, когда вы создаете объекты в ActionScript. В мире Энн и Боба легко увидеть, что, в конечном счете, предельным контейнером будет Земля, Вселенная, ОМ. В ActionScript OM также существует, принимая форму "объекта, вызывающего Объект".

Итак, эти объекты в объектах кажутся достаточно простыми, но чтобы действительно понять происходящее с ними, придется копнуть много глубже. И с этим углубленным пониманием к вам придет Великая Сила. Осознайте, прочувствуйте ее, текущую по вашим венам. Доверься своим чувствам, Люк. Я твой отец. Давным давно, в далекой, далекой галактике ...

Давайте попробуем поместить объект внутрь personA, просто посмотрим, как это работает. personA.favs = new Object( );

Мы только что добавили новое свойство к personA. Проверьте ваш пульс и продолжайте, когда он придет в норму. Мы легко можем добавить свойства к этому новому объекту favs: personA.favs.site1 = "flash.com"; personA.favs.site2 = "google.com";

Или, как было описано выше: personA.favs = { site1:"flash.com", site2:"google.com" }

Теперь можете сказать:
personA имеет свойство favs, которое имеет свойство site1, со значением "flash.com".
personA имеет свойство favs, которое имеет свойство site2, со значением "google.com".

  



Область видимости


Область видимости является вторым следствием вложенности объектов. Область видимости означает что-то вроде "контекста", в том смысле, "что именно можно увидеть/понять с разных точек/мест". Возвращаясь опять к метафоре с младенцем, младенец может видеть "внутри" своей матери (с фонариком), но не может видеть видеть то, что видит мама. В ActionScript вы можете автоматически делать ссылку на область видимости объекта, в первую очередь, ActionScript будет искать свойства в собственной области видимости объекта.

Из всех характеристик контейнеров, которые нас больше всего интересуют, наиболее полезной является не их картонность, а их "контейнеробильность" (эдакое вот словечко в стиле Дж. Буша). В контейнеры можно помещать все, что угодно, включая другие контейнеры. Изнутри контейнера, можно видеть только те предметы, которые находятся в нем, но никак не те, что снаружи. И, хотя вы можете видеть другие контейнеры в вашей области видимости, заглянуть внутрь них вам не удастся. Рассмотрим несложный пример. Давайте создадим еще один объект personA: personA= { name : "Ann", favs : { site1 : "flash.com", test1 : function(){ trace (this.site1) }, test2 : function(){ trace (this.name ) } }, test3: function(){ trace (this.name ) }, test4: function(){ trace (this.site1) } }; personA.favs.test1(); // flash.com personA.favs.test2(); // null (ребеной не может видеть родителя) personA.test3(); // Ann personA.test4(); // null (родитель не может видеть внутри ребенка)

В этом примере, ключевое слово this означает "контейнер, вызвавший эту функцию", что по счастью означает именно тот контейнер, который мы пытаемся увидеть внутри. На данном этапе, совершенно необязательно разбираться в том, как это работает, достаточно на простом языке описать, что будет на выходе каждого свойства test. test1: Свойство, называемое site1 в контейнере personA.favs. // которое имеет значение "flash.com" test2: Свойство, называемое name в контейнере personA.favs. // нет такого свойства в personA.favs test3: Свойство, называемое name в контейнере personA. // которое имеет значение "Ann" test4: Свойство, называемое site1 в контейнере personA. // нет такого свойства в personA

Интересно, что будет, если мы изменим test4 следующим образом: test4: function(){return this.favs.site1;} // Обратите внимание на '.favs.'

Отлично, работает. Что же на выходе? test4: Свойство, называемое site1, в контейнере, называемом favs, который находится в данном контейнере. // ? попробуйте найти значение, используя новый test4 код...


Что происходит, когда мы определяем свойство, используя ключевое слово var? Создаётся локальное свойство. "Локальный" - значит "действующий только в пределах границ данного объекта" или, если хотите, "в пределах границ данного контейнера". Что-то типа "первого парня на деревне", которые рождаются и умирают в пределах одной маленькой деревеньки и никогда никуда из нее не выбираются. Вот пример локального свойства, определённого в классе: A = function() { var temp = 5; this.x = temp; } trace(A.temp); // не здесь

Где именно действует свойство temp в данном примере? Его действие распространяется на часть функции A, являющуюся "объектом активации" (иногда также используется термин "конструктор функции"). Означает ли это, что мы найдём его с помощью выражения A.temp? Нет. Потому что в этом примере мы его только определяем, целиком объект активации остаётся не вызванным пока не вызвано выражение A(). Означает ли это, что он станет доступным после того, как вызвано выражение A? Нет. Потому что, после того, как вызвано A, он не принимается в расчёт. Вообще, каждый раз, когда вызывается функция, создаётся такой вот объект активации, и каждый раз, когда функция заканчивает своё действие, этот объект активации перестаёт приниматься в расчёт (хотя во Flash 5 из памяти он обычно не удаляется и не исчезает. Ай-яй-яй!). Итак, temp действует в пределах границ этого временного объекта. Однако, из-за того, что у этого объекта активации нет имени и он просто "находится неподалёку" во время действия функции, никакая другая часть программы не имеет к нему доступа (если только вы не вызовете функцию из функции и та вторая функция не увидит его с помощью своего свойства this). Когда он заканчивает своё действие, его локальные свойства не сохраняются.

Многие думают, что "в ActionScript всё, что ни есть - всё объект". Это не совсем так. Кое-что может и не быть объектом или, как это ни странно, может быть более, чем одним объектом. Вышеприведённая функция, это два объекта (вообще-то, строго говоря, целых три, но об этом позже). Существуют объекты-ссылки, называемые A, которые ведут себя, как любые другие объекты. Вы можете добавлять к ним свойства, например A.temp и эти свойства будут вставлены в объект A. У вас также есть блок инструкций, которые составляют функцию. Это и будет вторым объектом - объектом активации, который создаётся каждый раз, когда вызывается функция.

При использовании первого объекта A существует ряд ограничений. Главная задача этого объекта - дать имя блоку функций, чтобы его можно было вызвать. После этого можете использовать его именное пространство для хранения информации о самой функции. Такой информацией может быть, например, имя класса объекта (которое может понадобиться для исправления ошибок), или счётчик, который следит за количеством экземпляров, вызванных с помощью объекта. Такие свойства никак не повлияют на работу функции. В последующих экземплярах от них не останется и следа.

Второй объект, объект активации, производит самопостроение в процессе создания экземпляра. Он бывает совершенно необходим. У него свои границы действия, а его собственное ключевое слово this присваивается контейнеру, в котором он может создавать или изменять свойства. И это только часть его возможностей в создании экземпляра, самый распространённый, но вовсе не самый значимый случай его использования. У нас будет возможность убедиться в этом, когда мы начнём разбираться с прототипами.