Курс лекции по дисциплине Современные программные средства
скачать (21152.1 kb.)
Доступные файлы (590):
Задание.doc | 21kb. | 05.02.2002 00:56 | ![]() |
Лекция_1.doc | 49kb. | 04.02.2004 09:27 | ![]() |
ЗАДАНИЕ.DOC | 37kb. | 13.02.2007 12:28 | ![]() |
Программирование с DAO и ADO.doc | 426kb. | 13.02.2007 17:20 | ![]() |
CRE_INFO.GID | |||
CRE_INFO.HLP | |||
Helpscr.doc | 213kb. | 11.09.1998 08:50 | ![]() |
README.TXT | 1kb. | 27.09.1998 08:05 | ![]() |
задание СПС лаб4.doc | 24kb. | 16.03.2005 12:15 | ![]() |
Задание.doc | 23kb. | 17.03.2006 16:06 | ![]() |
cube.swf | |||
snegovic.swf | |||
bubbles.fla | |||
bubbles_Scene 1.swf | |||
bubbles.swf | |||
Animate-Shape Tween.fla | |||
cube.fla | |||
Dirt Gear.fla | |||
Globe.fla | |||
Sun Town.fla | |||
Theater.fla | |||
Writing Pen.fla | |||
3d_animat.asp | |||
3d_animat.swf | |||
ani_but.asp | |||
ani_but.swf | |||
faq.asp | |||
fla.asp | |||
fonts.asp | |||
f_viewer.swf | |||
mail-list.asp | |||
optimization.asp | |||
player.swf | |||
practic.swf | |||
protect.asp | |||
ruhelp.asp | |||
rut.gif | 1kb. | 21.05.2000 22:16 | ![]() |
shortcuts.asp | |||
sounds.asp | |||
ssavers.asp | |||
textfield.asp | |||
trigger.asp | |||
trigger.swf | |||
2 Рисование.fla | |||
5 Работа с текстом.fla | |||
flash4_1_D.doc | 160kb. | 01.09.2001 06:27 | ![]() |
2 Слои.fla | |||
flash4_2_layers.doc | 143kb. | 01.09.2001 06:27 | ![]() |
Имитация увеличительного стекла.doc | 32kb. | 05.04.2001 07:31 | ![]() |
3 Символы и Копии.fla | |||
flash4_3_simbol.doc | 99kb. | 01.09.2001 06:29 | ![]() |
Skywriting.fla | |||
Skywriting.swf | |||
4 Кнопки.fla | |||
5 Звуки.fla | |||
flash4_5_sound.doc | 106kb. | 01.09.2001 06:30 | ![]() |
8 Анимация.fla | |||
8 Анимация.swf | |||
flash4_6_animation.doc | 98kb. | 01.09.2001 06:31 | ![]() |
Основы анимации.avi | скачать | ||
Macromedia Flash 5 (Лекция 1).doc | 217kb. | 19.11.2002 18:47 | ![]() |
test.swf | |||
Вставка Flash.doc | 30kb. | 28.04.2004 15:17 | ![]() |
Вставка Flash-роликов в HTML.doc | 73kb. | 28.04.2004 11:10 | ![]() |
Использование SWiSH в HTML.doc | 80kb. | 28.04.2004 15:28 | ![]() |
Как вставить Flash в HTML.doc | 28kb. | 28.04.2004 15:40 | ![]() |
Код вставки SWF файла Flash MX.doc | 24kb. | 28.04.2004 15:54 | ![]() |
Am179.gif | 31kb. | 05.04.1998 14:42 | ![]() |
ANATOMY3.GIF | 12kb. | 20.02.1998 18:25 | ![]() |
ANATOMY5.GIF | 7kb. | 20.02.1998 18:23 | ![]() |
ANATOMY7.GIF | 10kb. | 20.02.1998 18:26 | ![]() |
anieyes.gif | 50kb. | 11.10.1998 03:43 | ![]() |
Aniheart.gif | 5kb. | 05.04.1998 14:46 | ![]() |
BAT.GIF | 13kb. | 20.02.1998 08:37 | ![]() |
BIRD2.GIF | 4kb. | 20.02.1998 08:23 | ![]() |
BULL1.GIF | 44kb. | 20.02.1998 08:25 | ![]() |
BULL.GIF | 15kb. | 20.02.1998 08:23 | ![]() |
BUTTE~56.GIF | 34kb. | 20.02.1998 08:18 | ![]() |
BUTTE~58.GIF | 51kb. | 22.02.1998 02:44 | ![]() |
CAT10.GIF | 25kb. | 20.02.1998 08:06 | ![]() |
CAT13.GIF | 20kb. | 20.02.1998 17:02 | ![]() |
CAT14.GIF | 9kb. | 20.02.1998 07:56 | ![]() |
CAT2.GIF | 28kb. | 20.02.1998 08:11 | ![]() |
CAT8.GIF | 12kb. | 20.02.1998 17:03 | ![]() |
CAT9.GIF | 3kb. | 20.02.1998 17:01 | ![]() |
DOG13.GIF | 5kb. | 22.02.1998 02:36 | ![]() |
DOG1.GIF | 12kb. | 20.02.1998 07:53 | ![]() |
DOLPHIN.GIF | 18kb. | 20.02.1998 16:53 | ![]() |
DOLPHINS.GIF | 18kb. | 20.02.1998 07:34 | ![]() |
DOVE.GIF | 102kb. | 20.02.1998 16:59 | ![]() |
EAGLES.GIF | 85kb. | 22.02.1998 02:45 | ![]() |
FISH.GIF | 31kb. | 20.02.1998 07:30 | ![]() |
FLAM~172.GIF | 10kb. | 20.02.1998 07:11 | ![]() |
FLYI~176.GIF | 17kb. | 20.02.1998 07:12 | ![]() |
FROG.GIF | 8kb. | 20.02.1998 07:09 | ![]() |
LEOPARD.GIF | 8kb. | 20.02.1998 06:56 | ![]() |
MONKEY2.GIF | 34kb. | 20.02.1998 06:59 | ![]() |
MOOSE.GIF | 19kb. | 20.02.1998 06:55 | ![]() |
MOUSE1.GIF | 27kb. | 20.02.1998 07:02 | ![]() |
MOUSE2.GIF | 11kb. | 20.02.1998 06:53 | ![]() |
MOUSE3.GIF | 39kb. | 20.02.1998 06:55 | ![]() |
MOUSE.GIF | 72kb. | 20.02.1998 16:53 | ![]() |
ORCA.GIF | 10kb. | 20.02.1998 06:52 | ![]() |
OWL.GIF | 34kb. | 20.02.1998 16:42 | ![]() |
POLA~232.GIF | 16kb. | 20.02.1998 06:52 | ![]() |
PTER~234.GIF | 14kb. | 20.02.1998 19:19 | ![]() |
PUMA.GIF | 10kb. | 20.02.1998 06:50 | ![]() |
REDWORMS.GIF | 4kb. | 20.02.1998 06:51 | ![]() |
SEAGULL.GIF | 5kb. | 20.02.1998 06:48 | ![]() |
SPIDER1.GIF | 7kb. | 20.02.1998 06:46 | ![]() |
SWAN.GIF | 31kb. | 20.02.1998 06:45 | ![]() |
TIGER1.GIF | 10kb. | 20.02.1998 06:42 | ![]() |
TIGER2.GIF | 39kb. | 20.02.1998 06:54 | ![]() |
TIGER3.GIF | 12kb. | 20.02.1998 06:40 | ![]() |
TIGER4.GIF | 6kb. | 20.02.1998 06:40 | ![]() |
TIGER5.GIF | 9kb. | 20.02.1998 06:40 | ![]() |
TIGER6.GIF | 22kb. | 20.02.1998 05:44 | ![]() |
TRACKS.GIF | 3kb. | 20.02.1998 05:35 | ![]() |
T-REX.GIF | 50kb. | 20.02.1998 16:42 | ![]() |
TURTLE2.GIF | 12kb. | 20.02.1998 05:31 | ![]() |
WORM.GIF | 4kb. | 20.02.1998 05:30 | ![]() |
ani-tri.gif | 2kb. | 03.11.1998 15:51 | ![]() |
A-ANI5.GIF | 38kb. | 20.02.1998 06:40 | ![]() |
ASTERO~8.GIF | 49kb. | 20.02.1998 16:40 | ![]() |
EARTH10.GIF | 24kb. | 20.02.1998 16:36 | ![]() |
EARTH12.GIF | 8kb. | 20.02.1998 16:33 | ![]() |
EARTH13.GIF | 36kb. | 20.02.1998 16:33 | ![]() |
EARTH14.GIF | 52kb. | 20.02.1998 16:34 | ![]() |
EARTH16.GIF | 15kb. | 20.02.1998 16:30 | ![]() |
EARTH18.GIF | 87kb. | 20.02.1998 16:35 | ![]() |
EARTH1.GIF | 10kb. | 20.02.1998 16:37 | ![]() |
EARTH2.GIF | 113kb. | 23.02.1998 14:01 | ![]() |
EARTH4.GIF | 21kb. | 20.02.1998 06:32 | ![]() |
EARTH6.GIF | 55kb. | 20.02.1998 16:47 | ![]() |
EARTH8.GIF | 18kb. | 20.02.1998 16:35 | ![]() |
EARTH9.GIF | 7kb. | 20.02.1998 06:23 | ![]() |
EARTHBUT.GIF | 8kb. | 20.02.1998 06:07 | ![]() |
EARTH.GIF | 28kb. | 20.02.1998 06:34 | ![]() |
GLDGLOBE.GIF | 87kb. | 20.02.1998 16:29 | ![]() |
GLOBE.GIF | 19kb. | 20.02.1998 06:07 | ![]() |
GP_GLO~6.GIF | 37kb. | 20.02.1998 06:07 | ![]() |
MOON1.GIF | 40kb. | 20.02.1998 06:04 | ![]() |
MOON2.GIF | 26kb. | 20.02.1998 16:25 | ![]() |
MOON3.GIF | 47kb. | 20.02.1998 06:04 | ![]() |
MOON.GIF | 14kb. | 20.02.1998 06:05 | ![]() |
PLANET1.GIF | 168kb. | 22.02.1998 23:17 | ![]() |
PLANET3.GIF | 146kb. | 20.02.1998 16:26 | ![]() |
PLANET.GIF | 20kb. | 20.02.1998 16:29 | ![]() |
PULSAR.GIF | 3kb. | 20.02.1998 05:48 | ![]() |
REDGLOBE.GIF | 68kb. | 20.02.1998 16:24 | ![]() |
SATURN.GIF | 30kb. | 20.02.1998 05:52 | ![]() |
SHINING.GIF | 7kb. | 20.02.1998 05:47 | ![]() |
SPIKE.GIF | 4kb. | 20.02.1998 05:48 | ![]() |
STAR1.GIF | 53kb. | 22.02.1998 22:22 | ![]() |
STAR2.GIF | 3kb. | 20.02.1998 05:48 | ![]() |
STAR3.GIF | 17kb. | 20.02.1998 05:45 | ![]() |
STAR4.GIF | 3kb. | 20.02.1998 05:40 | ![]() |
STAR5.GIF | 1kb. | 20.02.1998 05:39 | ![]() |
STAR6.GIF | 7kb. | 20.02.1998 05:41 | ![]() |
STAR7.GIF | 3kb. | 20.02.1998 05:41 | ![]() |
STAR8.GIF | 5kb. | 20.02.1998 05:39 | ![]() |
STAR.GIF | 2kb. | 20.02.1998 05:47 | ![]() |
STARRY.GIF | 9kb. | 20.02.1998 05:39 | ![]() |
STARS.GIF | 11kb. | 20.02.1998 05:52 | ![]() |
TWSTAR.GIF | 3kb. | 20.02.1998 05:37 | ![]() |
ABALL1AB.GIF | 9kb. | 20.02.1998 09:59 | ![]() |
ABALL1A.GIF | 7kb. | 20.02.1998 09:58 | ![]() |
ABALL2A.GIF | 9kb. | 20.02.1998 09:57 | ![]() |
ABALL3A.GIF | 9kb. | 20.02.1998 09:57 | ![]() |
ABALL4A.GIF | 9kb. | 20.02.1998 10:07 | ![]() |
ABALL6A.GIF | 9kb. | 20.02.1998 09:56 | ![]() |
AG_BALL3.GIF | 4kb. | 20.02.1998 09:58 | ![]() |
AN_ICONA.GIF | 6kb. | 20.02.1998 18:22 | ![]() |
BALL1.GIF | 4kb. | 20.02.1998 09:54 | ![]() |
BALL2.GIF | 2kb. | 20.02.1998 09:54 | ![]() |
BALL3.GIF | 4kb. | 20.02.1998 09:54 | ![]() |
BALL.GIF | 6kb. | 20.02.1998 09:57 | ![]() |
BLINE.GIF | 3kb. | 20.02.1998 09:53 | ![]() |
BLINK~42.GIF | 3kb. | 20.02.1998 09:53 | ![]() |
BLINKIE.GIF | 3kb. | 20.02.1998 09:53 | ![]() |
BLUBOU.GIF | 1kb. | 20.02.1998 09:52 | ![]() |
BLUEBALL.GIF | 9kb. | 20.02.1998 09:53 | ![]() |
BLUER~50.GIF | 11kb. | 20.02.1998 09:53 | ![]() |
BLUERED.GIF | 2kb. | 20.02.1998 09:52 | ![]() |
BLUES~52.GIF | 3kb. | 20.02.1998 09:52 | ![]() |
BLUEY~54.GIF | 10kb. | 20.02.1998 09:51 | ![]() |
BLUPULSE.GIF | 2kb. | 20.02.1998 09:51 | ![]() |
BNC_ANM.GIF | 5kb. | 20.02.1998 09:53 | ![]() |
BUBBLER.GIF | 6kb. | 20.02.1998 09:48 | ![]() |
CONENB.GIF | 50kb. | 20.02.1998 09:52 | ![]() |
GLOBE.GIF | 40kb. | 20.02.1998 18:25 | ![]() |
GOLD1.GIF | 2kb. | 20.02.1998 09:41 | ![]() |
GP_BUT27.GIF | 10kb. | 22.02.1998 23:59 | ![]() |
GP_BUT29.GIF | 18kb. | 20.02.1998 09:44 | ![]() |
GP_BUT37.GIF | 2kb. | 20.02.1998 09:37 | ![]() |
GP_BUT38.GIF | 1kb. | 20.02.1998 09:36 | ![]() |
GP_BUT39.GIF | 2kb. | 20.02.1998 09:39 | ![]() |
GP_BUT40.GIF | 7kb. | 20.02.1998 09:44 | ![]() |
GP_GLO~7.GIF | 77kb. | 24.02.1998 00:22 | ![]() |
GP_GLO~8.GIF | 6kb. | 20.02.1998 09:39 | ![]() |
GP_GLO~9.GIF | 5kb. | 20.02.1998 09:32 | ![]() |
GP_GRN~2.GIF | 13kb. | 20.02.1998 09:36 | ![]() |
GP_MOON.GIF | 8kb. | 20.02.1998 09:31 | ![]() |
GP_PIC3.GIF | 72kb. | 20.02.1998 09:36 | ![]() |
GP_PIC4.GIF | 119kb. | 24.02.1998 00:21 | ![]() |
G_SPIRAL.GIF | 9kb. | 23.02.1998 00:02 | ![]() |
PALLA.GIF | 8kb. | 20.02.1998 09:30 | ![]() |
PERLREDB.GIF | 2kb. | 20.02.1998 09:29 | ![]() |
PURPIN.GIF | 2kb. | 20.02.1998 09:29 | ![]() |
ROLLBALL.GIF | 5kb. | 20.02.1998 09:29 | ![]() |
ROTDONE.GIF | 25kb. | 20.02.1998 09:31 | ![]() |
SBUTTON.GIF | 15kb. | 20.02.1998 09:26 | ![]() |
SOC_ANM.GIF | 14kb. | 22.02.1998 23:59 | ![]() |
SPIK~126.GIF | 8kb. | 20.02.1998 09:22 | ![]() |
SQUI~128.GIF | 9kb. | 20.02.1998 09:29 | ![]() |
TCWD_106.GIF | 7kb. | 20.02.1998 05:29 | ![]() |
TCWD_118.GIF | 4kb. | 20.02.1998 05:29 | ![]() |
banner_3.gif | 14kb. | 22.12.1998 20:36 | ![]() |
1P_BAR1.GIF | 135kb. | 23.02.1998 20:41 | ![]() |
AG_BAR2.GIF | 3kb. | 20.02.1998 09:22 | ![]() |
ANIMA~22.GIF | 9kb. | 20.02.1998 09:21 | ![]() |
ANIM-BAR.GIF | 7kb. | 20.02.1998 09:20 | ![]() |
ANI-TUBE.GIF | 8kb. | 20.02.1998 09:19 | ![]() |
BAR_ANM.GIF | 7kb. | 20.02.1998 09:18 | ![]() |
BAR_EL.GIF | 11kb. | 20.02.1998 09:18 | ![]() |
BARMOVE.GIF | 28kb. | 20.02.1998 09:19 | ![]() |
BARSTAR.GIF | 5kb. | 20.02.1998 09:17 | ![]() |
BBOMB.GIF | 14kb. | 20.02.1998 09:17 | ![]() |
BEEP2.GIF | 4kb. | 20.02.1998 09:16 | ![]() |
BLOODBAR.GIF | 5kb. | 20.02.1998 09:17 | ![]() |
BLUEONE.GIF | 4kb. | 20.02.1998 09:16 | ![]() |
BLUERULE.GIF | 4kb. | 20.02.1998 09:16 | ![]() |
BLUETWO.GIF | 2kb. | 20.02.1998 09:15 | ![]() |
BOLT_ANI.GIF | 18kb. | 20.02.1998 09:15 | ![]() |
BOMBBAR.GIF | 11kb. | 20.02.1998 09:14 | ![]() |
BR_BAR.GIF | 12kb. | 20.02.1998 09:18 | ![]() |
BULBOUT.GIF | 2kb. | 20.02.1998 09:13 | ![]() |
BURST~70.GIF | 10kb. | 20.02.1998 09:14 | ![]() |
CANON.GIF | 15kb. | 20.02.1998 09:14 | ![]() |
CAT.GIF | 10kb. | 20.02.1998 09:16 | ![]() |
COLOR~82.GIF | 16kb. | 20.02.1998 09:17 | ![]() |
COLORBAR.GIF | 5kb. | 20.02.1998 09:13 | ![]() |
COLORLIN.GIF | 8kb. | 20.02.1998 09:13 | ![]() |
CON-BAR3.GIF | 7kb. | 20.02.1998 09:10 | ![]() |
COP.GIF | 13kb. | 20.02.1998 17:16 | ![]() |
DANCEBAR.GIF | 1kb. | 20.02.1998 09:09 | ![]() |
DOG_H~94.GIF | 64kb. | 20.02.1998 09:12 | ![]() |
DRIP1.GIF | 4kb. | 20.02.1998 09:09 | ![]() |
DRIP.GIF | 7kb. | 20.02.1998 09:09 | ![]() |
ELECTRIC.GIF | 6kb. | 20.02.1998 09:08 | ![]() |
FIREBAR2.GIF | 12kb. | 20.02.1998 09:09 | ![]() |
FIREBAR.GIF | 42kb. | 20.02.1998 09:12 | ![]() |
FLOW~110.GIF | 1kb. | 20.02.1998 09:07 | ![]() |
FUSS.GIF | 5kb. | 20.02.1998 09:07 | ![]() |
G_BAR_N3.GIF | 11kb. | 20.02.1998 09:08 | ![]() |
GEOBAR.GIF | 12kb. | 20.02.1998 09:09 | ![]() |
GP_BAR10.GIF | 12kb. | 20.02.1998 08:54 | ![]() |
GP_BAR11.GIF | 10kb. | 20.02.1998 17:12 | ![]() |
GP_BAR12.GIF | 18kb. | 20.02.1998 08:52 | ![]() |
GP_BAR1.GIF | 27kb. | 20.02.1998 09:05 | ![]() |
GP_BAR2.GIF | 45kb. | 20.02.1998 09:05 | ![]() |
GP_BAR3.GIF | 9kb. | 20.02.1998 17:16 | ![]() |
GP_BAR4.GIF | 13kb. | 20.02.1998 09:00 | ![]() |
GP_BAR5.GIF | 20kb. | 20.02.1998 09:00 | ![]() |
GP_BAR6.GIF | 17kb. | 20.02.1998 08:59 | ![]() |
GP_BAR7.GIF | 34kb. | 20.02.1998 17:13 | ![]() |
GP_BAR8.GIF | 62kb. | 23.02.1998 20:38 | ![]() |
GP_BAR9.GIF | 32kb. | 20.02.1998 08:59 | ![]() |
GP_GLO~5.GIF | 31kb. | 20.02.1998 08:55 | ![]() |
GREY~150.GIF | 14kb. | 20.02.1998 08:53 | ![]() |
HR1.GIF | 8kb. | 20.02.1998 08:49 | ![]() |
HR_S~156.GIF | 9kb. | 20.02.1998 08:50 | ![]() |
INDI~158.GIF | 10kb. | 20.02.1998 08:50 | ![]() |
JETRIGHT.GIF | 14kb. | 22.02.1998 02:46 | ![]() |
KILROY.GIF | 5kb. | 20.02.1998 08:48 | ![]() |
LASER.GIF | 6kb. | 20.02.1998 08:47 | ![]() |
LIBUNT.GIF | 1kb. | 20.02.1998 08:47 | ![]() |
LILRED.GIF | 3kb. | 20.02.1998 08:46 | ![]() |
LINE04C.GIF | 29kb. | 20.02.1998 17:15 | ![]() |
LINEDOT.GIF | 18kb. | 20.02.1998 08:47 | ![]() |
LOLLIPOP.GIF | 7kb. | 20.02.1998 17:11 | ![]() |
MATC~178.GIF | 9kb. | 20.02.1998 08:44 | ![]() |
NASCAR.GIF | 26kb. | 20.02.1998 17:12 | ![]() |
NEWS~182.GIF | 11kb. | 20.02.1998 08:41 | ![]() |
PROGRESS.GIF | 5kb. | 20.02.1998 08:38 | ![]() |
RULE02.GIF | 6kb. | 20.02.1998 08:38 | ![]() |
SABE~190.GIF | 30kb. | 20.02.1998 08:40 | ![]() |
SLIDBAR.GIF | 9kb. | 20.02.1998 08:36 | ![]() |
SPARK.GIF | 5kb. | 20.02.1998 08:33 | ![]() |
STAR~196.GIF | 14kb. | 20.02.1998 17:10 | ![]() |
WELLMESS.GIF | 12kb. | 20.02.1998 05:36 | ![]() |
WLCME.GIF | 8kb. | 20.02.1998 05:30 | ![]() |
YELLCAR.GIF | 28kb. | 20.02.1998 05:38 | ![]() |
BOOK2.GIF | 10kb. | 20.02.1998 18:57 | ![]() |
BOOK3.GIF | 20kb. | 20.02.1998 18:56 | ![]() |
ANIMASCT.GIF | 12kb. | 20.02.1998 11:32 | ![]() |
ANIRATZ.GIF | 4kb. | 20.02.1998 16:05 | ![]() |
ANMCALLE.GIF | 4kb. | 20.02.1998 11:32 | ![]() |
BUGSD~14.GIF | 68kb. | 20.02.1998 11:42 | ![]() |
CALVIN.GIF | 6kb. | 20.02.1998 11:28 | ![]() |
DEVIL~28.GIF | 8kb. | 20.02.1998 11:23 | ![]() |
DEVIL.GIF | 62kb. | 20.02.1998 11:30 | ![]() |
DRINK~30.GIF | 33kb. | 20.02.1998 11:22 | ![]() |
FOX.GIF | 18kb. | 20.02.1998 11:22 | ![]() |
FREAK~38.GIF | 3kb. | 20.02.1998 11:17 | ![]() |
GENIE.GIF | 67kb. | 20.02.1998 11:27 | ![]() |
GOLDHERO.GIF | 11kb. | 20.02.1998 11:15 | ![]() |
HERORUN.GIF | 57kb. | 20.02.1998 11:16 | ![]() |
OSCAR.GIF | 12kb. | 20.02.1998 10:59 | ![]() |
PNKPAN.GIF | 6kb. | 20.02.1998 10:58 | ![]() |
SHARPS.GIF | 99kb. | 20.02.1998 10:55 | ![]() |
SONIC.GIF | 5kb. | 20.02.1998 10:50 | ![]() |
SPIDE~54.GIF | 4kb. | 20.02.1998 10:50 | ![]() |
ST.GIF | 68kb. | 20.02.1998 10:56 | ![]() |
SUPER~58.GIF | 14kb. | 20.02.1998 10:49 | ![]() |
SYLVEST.GIF | 22kb. | 20.02.1998 10:49 | ![]() |
TWEETY.GIF | 9kb. | 20.02.1998 10:46 | ![]() |
VIKING.GIF | 38kb. | 20.02.1998 10:48 | ![]() |
WB.GIF | 16kb. | 20.02.1998 10:45 | ![]() |
WIZARD.GIF | 8kb. | 20.02.1998 10:43 | ![]() |
WOLF.GIF | 10kb. | 20.02.1998 10:43 | ![]() |
clownanim48.gif | 28kb. | 03.04.1998 17:05 | ![]() |
counting_fingers.gif | 4kb. | 11.10.1998 03:43 | ![]() |
3D.GIF | 20kb. | 20.02.1998 11:48 | ![]() |
COMETANI.GIF | 23kb. | 20.02.1998 11:49 | ![]() |
ORBIT.GIF | 57kb. | 20.02.1998 11:48 | ![]() |
WRING.GIF | 32kb. | 20.02.1998 11:37 | ![]() |
dancers.gif | 3kb. | 18.06.1998 21:05 | ![]() |
dansman.gif | 4kb. | 19.11.1998 02:53 | ![]() |
dtr10x.jpg | 35kb. | 18.03.1999 11:04 | ![]() |
dtr7.jpg | 25kb. | 07.11.1998 17:18 | ![]() |
ANI_EYE.GIF | 4kb. | 20.02.1998 12:00 | ![]() |
ANIMAL94.GIF | 22kb. | 20.02.1998 12:00 | ![]() |
EYE1.GIF | 17kb. | 20.02.1998 11:58 | ![]() |
EYE2.GIF | 41kb. | 20.02.1998 11:58 | ![]() |
EYE3.GIF | 19kb. | 20.02.1998 11:58 | ![]() |
EYE5.GIF | 17kb. | 20.02.1998 11:56 | ![]() |
EYE-LOOK.GIF | 3kb. | 20.02.1998 11:56 | ![]() |
EYE-MOV.GIF | 71kb. | 20.02.1998 12:00 | ![]() |
EYES2ANI.GIF | 30kb. | 20.02.1998 11:53 | ![]() |
EYES.GIF | 3kb. | 20.02.1998 11:54 | ![]() |
GP_PIC5.GIF | 134kb. | 20.02.1998 12:04 | ![]() |
GRN_E~40.GIF | 3kb. | 20.02.1998 11:50 | ![]() |
GRNEYES.GIF | 7kb. | 20.02.1998 11:49 | ![]() |
PEEP.GIF | 21kb. | 20.02.1998 13:12 | ![]() |
ANGEL.GIF | 54kb. | 20.02.1998 12:19 | ![]() |
ANKH.GIF | 8kb. | 20.02.1998 12:13 | ![]() |
DFLYGB.GIF | 28kb. | 25.02.1998 05:15 | ![]() |
DFLYGS.GIF | 28kb. | 25.02.1998 05:15 | ![]() |
DFLYSB.GIF | 19kb. | 25.02.1998 05:16 | ![]() |
DFLYS.GIF | 43kb. | 25.02.1998 05:16 | ![]() |
DRAGON~1.GIF | 12kb. | 20.02.1998 12:12 | ![]() |
DRAGON1.GIF | 41kb. | 20.02.1998 12:14 | ![]() |
DRAGON2.GIF | 18kb. | 20.02.1998 12:11 | ![]() |
HPS.GIF | 10kb. | 20.02.1998 12:10 | ![]() |
MONSTER.GIF | 11kb. | 20.02.1998 12:07 | ![]() |
PEGASUS2.GIF | 12kb. | 20.02.1998 12:05 | ![]() |
PEGASUS.GIF | 143kb. | 23.02.1998 20:26 | ![]() |
SORCE~44.GIF | 14kb. | 20.02.1998 12:05 | ![]() |
SPIRIT.GIF | 6kb. | 20.02.1998 12:05 | ![]() |
SWORD1.GIF | 51kb. | 20.02.1998 12:06 | ![]() |
SWORD.GIF | 23kb. | 20.02.1998 13:10 | ![]() |
SWORDS1.GIF | 23kb. | 20.02.1998 12:02 | ![]() |
UNUS_~58.GIF | 102kb. | 22.02.1998 02:34 | ![]() |
WIZARD1.GIF | 20kb. | 20.02.1998 13:08 | ![]() |
WRAITH.GIF | 24kb. | 20.02.1998 12:01 | ![]() |
ANI020.GIF | 22kb. | 20.02.1998 12:42 | ![]() |
BLUFIRE.GIF | 4kb. | 20.02.1998 12:42 | ![]() |
CANDLE1.GIF | 8kb. | 20.02.1998 12:41 | ![]() |
CANDLE2.GIF | 2kb. | 20.02.1998 12:41 | ![]() |
CANDLE3.GIF | 4kb. | 20.02.1998 12:40 | ![]() |
CANDLE6.GIF | 22kb. | 20.02.1998 12:48 | ![]() |
CANDLE7.GIF | 8kb. | 20.02.1998 12:45 | ![]() |
CANDLE.GIF | 10kb. | 20.02.1998 12:42 | ![]() |
DOOMFIRE.GIF | 13kb. | 20.02.1998 12:38 | ![]() |
DRKTORCH.GIF | 15kb. | 20.02.1998 13:10 | ![]() |
EXPLO~34.GIF | 19kb. | 20.02.1998 12:37 | ![]() |
FIRE001.GIF | 17kb. | 20.02.1998 12:35 | ![]() |
FIRE1.GIF | 7kb. | 20.02.1998 12:34 | ![]() |
FIRE2.GIF | 46kb. | 20.02.1998 12:36 | ![]() |
FIRE3.GIF | 6kb. | 20.02.1998 12:34 | ![]() |
FIREANM.GIF | 6kb. | 20.02.1998 12:33 | ![]() |
FIRELINK.GIF | 100kb. | 20.02.1998 12:41 | ![]() |
FIREW~54.GIF | 65kb. | 20.02.1998 13:09 | ![]() |
FIREW~56.GIF | 65kb. | 20.02.1998 12:33 | ![]() |
FIREW~58.GIF | 69kb. | 20.02.1998 12:33 | ![]() |
FIREWRKS.GIF | 37kb. | 20.02.1998 12:32 | ![]() |
FLAME1.GIF | 12kb. | 20.02.1998 13:07 | ![]() |
FLAME2.GIF | 4kb. | 20.02.1998 13:06 | ![]() |
FLAME3.GIF | 22kb. | 20.02.1998 13:07 | ![]() |
FLAME.GIF | 21kb. | 20.02.1998 12:30 | ![]() |
FLAMM~72.GIF | 7kb. | 20.02.1998 12:23 | ![]() |
FLIKER.GIF | 40kb. | 20.02.1998 13:07 | ![]() |
NUCLEAR.GIF | 34kb. | 20.02.1998 12:22 | ![]() |
RTORCH.GIF | 9kb. | 20.02.1998 12:19 | ![]() |
TORCH1.GIF | 16kb. | 20.02.1998 13:07 | ![]() |
TORCH.GIF | 12kb. | 20.02.1998 12:21 | ![]() |
TORCHSM.GIF | 16kb. | 20.02.1998 12:20 | ![]() |
ANIMDIAB.GIF | 26kb. | 20.02.1998 13:06 | ![]() |
BCROSS.GIF | 21kb. | 20.02.1998 13:06 | ![]() |
BLACK~10.GIF | 15kb. | 20.02.1998 13:05 | ![]() |
BONED~12.GIF | 23kb. | 20.02.1998 13:05 | ![]() |
BUTCHER.GIF | 15kb. | 20.02.1998 13:04 | ![]() |
CHESS.GIF | 23kb. | 20.02.1998 13:04 | ![]() |
DEDDI~20.GIF | 83kb. | 20.02.1998 12:49 | ![]() |
DIABL~24.GIF | 67kb. | 20.02.1998 13:03 | ![]() |
DIABL~26.GIF | 65kb. | 20.02.1998 13:12 | ![]() |
DIABL~28.GIF | 25kb. | 20.02.1998 13:02 | ![]() |
DIABL~30.GIF | 69kb. | 20.02.1998 13:06 | ![]() |
DNTIGER1.GIF | 16kb. | 20.02.1998 13:00 | ![]() |
DOOM2.GIF | 5kb. | 20.02.1998 13:00 | ![]() |
DRUIDD.GIF | 67kb. | 20.02.1998 13:03 | ![]() |
EXPLO~42.GIF | 26kb. | 20.02.1998 12:59 | ![]() |
FIGHTER.GIF | 8kb. | 20.02.1998 12:58 | ![]() |
GANGS.GIF | 47kb. | 25.02.1999 17:37 | ![]() |
INCIN~48.GIF | 21kb. | 20.02.1998 16:07 | ![]() |
INVIS~50.GIF | 12kb. | 20.02.1998 12:58 | ![]() |
KNIGHT.GIF | 35kb. | 20.02.1998 13:05 | ![]() |
LAZARUS.GIF | 21kb. | 20.02.1998 13:00 | ![]() |
LORDS~56.GIF | 25kb. | 20.02.1998 12:58 | ![]() |
MAGEAT.GIF | 19kb. | 20.02.1998 12:53 | ![]() |
MAGE.GIF | 30kb. | 20.02.1998 12:53 | ![]() |
MAGICIAN.GIF | 50kb. | 20.02.1998 13:02 | ![]() |
PEN.GIF | 27kb. | 20.02.1998 12:52 | ![]() |
PENTA~68.GIF | 3kb. | 20.02.1998 12:51 | ![]() |
PENTA~70.GIF | 11kb. | 20.02.1998 12:51 | ![]() |
QUAKE.GIF | 13kb. | 20.02.1998 12:51 | ![]() |
RAD.GIF | 10kb. | 20.02.1998 12:51 | ![]() |
ROGUEBOW.GIF | 12kb. | 20.02.1998 12:51 | ![]() |
SCORPIO.GIF | 14kb. | 20.02.1998 12:51 | ![]() |
SKULL~84.GIF | 5kb. | 20.02.1998 12:50 | ![]() |
SKULL~86.GIF | 9kb. | 20.02.1998 12:50 | ![]() |
SORCERF.GIF | 19kb. | 20.02.1998 12:50 | ![]() |
SUB-ZERO.GIF | 13kb. | 20.02.1998 12:52 | ![]() |
SUCCUBUS.GIF | 14kb. | 20.02.1998 12:50 | ![]() |
UNRAV~96.GIF | 9kb. | 20.02.1998 12:50 | ![]() |
UO.GIF | 13kb. | 20.02.1998 12:50 | ![]() |
WARRIORA.GIF | 17kb. | 20.02.1998 12:50 | ![]() |
WARRIORB.GIF | 19kb. | 20.02.1998 12:49 | ![]() |
WARRIOR.GIF | 19kb. | 20.02.1998 12:49 | ![]() |
HAND1.GIF | 37kb. | 20.02.1998 12:46 | ![]() |
HAND3.GIF | 55kb. | 20.02.1998 12:47 | ![]() |
HAND.GIF | 23kb. | 20.02.1998 12:46 | ![]() |
HANDS.GIF | 24kb. | 20.02.1998 12:45 | ![]() |
HANDWAVE.GIF | 17kb. | 20.02.1998 12:45 | ![]() |
HEART2.GIF | 10kb. | 20.02.1998 18:55 | ![]() |
ABELLL~6.GIF | 25kb. | 23.02.1998 04:29 | ![]() |
ABELLR~8.GIF | 24kb. | 23.02.1998 04:39 | ![]() |
XMASLT2.GIF | 21kb. | 23.02.1998 02:42 | ![]() |
hoparlor.gif | 10kb. | 02.04.1998 15:11 | ![]() |
hot_mix.gif | 20kb. | 09.06.1998 14:04 | ![]() |
line13.gif | 15kb. | 18.04.1998 02:16 | ![]() |
mailmove.gif | 7kb. | 18.05.1998 02:36 | ![]() |
1P_LVER1.GIF | 61kb. | 24.02.1998 19:22 | ![]() |
ALARMCL.GIF | 8kb. | 24.02.1998 19:20 | ![]() |
ANADIM.GIF | 29kb. | 24.02.1998 19:21 | ![]() |
ART.GIF | 33kb. | 24.02.1998 19:19 | ![]() |
ASTER.GIF | 13kb. | 24.02.1998 19:19 | ![]() |
BLOB.GIF | 5kb. | 24.02.1998 19:04 | ![]() |
BRUSH.GIF | 30kb. | 24.02.1998 19:04 | ![]() |
C_FAN.GIF | 13kb. | 24.02.1998 19:03 | ![]() |
CLAP.GIF | 49kb. | 24.02.1998 19:03 | ![]() |
$.GIF | 30kb. | 24.02.1998 19:22 | ![]() |
GUNANIM.GIF | 9kb. | 24.02.1998 18:51 | ![]() |
LLRINGS.GIF | 31kb. | 25.02.1998 05:16 | ![]() |
LOOKER1.GIF | 2kb. | 25.02.1998 05:16 | ![]() |
M14.GIF | 9kb. | 25.02.1998 05:16 | ![]() |
PLAYBOY.GIF | 9kb. | 24.02.1998 00:38 | ![]() |
RCHAIR.GIF | 30kb. | 24.02.1998 00:37 | ![]() |
REDRINGS.GIF | 37kb. | 24.02.1998 00:36 | ![]() |
RFHEA~40.GIF | 19kb. | 24.02.1998 00:37 | ![]() |
RING_ANM.GIF | 9kb. | 24.02.1998 00:36 | ![]() |
ROSE01.GIF | 22kb. | 24.02.1998 00:35 | ![]() |
STARR.GIF | 138kb. | 24.02.1998 00:32 | ![]() |
MOV11.GIF | 5kb. | 03.04.1998 17:10 | ![]() |
mp3cd.gif | 30kb. | 20.11.1998 05:07 | ![]() |
newSmCLR.gif | 2kb. | 18.06.1998 21:07 | ![]() |
PERL.GIF | 32kb. | 02.04.1998 15:20 | ![]() |
pulsar1.gif | 12kb. | 17.01.1998 21:25 | ![]() |
ATOM1.GIF | 7kb. | 24.02.1998 21:00 | ![]() |
ATOM2.GIF | 37kb. | 24.02.1998 21:00 | ![]() |
ATOM3.GIF | 25kb. | 24.02.1998 21:00 | ![]() |
NUC_AN3.GIF | 12kb. | 24.02.1998 20:59 | ![]() |
SPIKES.GIF | 15kb. | 24.02.1998 20:59 | ![]() |
DANCIN~8.GIF | 34kb. | 24.02.1998 20:54 | ![]() |
SKELE~14.GIF | 7kb. | 24.02.1998 20:52 | ![]() |
SKELE~16.GIF | 66kb. | 24.02.1998 20:52 | ![]() |
SKELEDAN.GIF | 22kb. | 24.02.1998 20:53 | ![]() |
SKELETON.GIF | 70kb. | 24.02.1998 20:54 | ![]() |
SKULL1.GIF | 40kb. | 24.02.1998 20:52 | ![]() |
SKULL2.GIF | 31kb. | 24.02.1998 20:52 | ![]() |
SKULL33.GIF | 4kb. | 24.02.1998 20:49 | ![]() |
SKULL3.GIF | 13kb. | 24.02.1998 20:50 | ![]() |
SKULL.GIF | 46kb. | 24.02.1998 20:51 | ![]() |
Smile.gif | 2kb. | 03.04.1998 17:10 | ![]() |
SMILELY.GIF | 1kb. | 03.04.1998 17:10 | ![]() |
ABDUCT~6.GIF | 33kb. | 24.02.1998 20:50 | ![]() |
ALIEN1.GIF | 14kb. | 24.02.1998 20:49 | ![]() |
ALIEN2.GIF | 17kb. | 24.02.1998 20:49 | ![]() |
ALIENBAL.GIF | 33kb. | 24.02.1998 20:49 | ![]() |
AL_IEN.GIF | 6kb. | 24.02.1998 20:49 | ![]() |
ALIEN.GIF | 15kb. | 24.02.1998 20:49 | ![]() |
ALION.GIF | 5kb. | 24.02.1998 20:47 | ![]() |
BORGSHIP.GIF | 121kb. | 24.02.1998 20:48 | ![]() |
COOL_D1.GIF | 15kb. | 24.02.1998 20:47 | ![]() |
FLASH.GIF | 5kb. | 24.02.1998 20:46 | ![]() |
FLYIN~30.GIF | 6kb. | 24.02.1998 20:46 | ![]() |
GBOWL.GIF | 22kb. | 24.02.1998 20:46 | ![]() |
KLINGON.GIF | 33kb. | 24.02.1998 20:45 | ![]() |
LIGHTMAN.GIF | 126kb. | 24.02.1998 20:47 | ![]() |
MECH10.GIF | 35kb. | 24.02.1998 20:40 | ![]() |
MECH1.GIF | 7kb. | 24.02.1998 20:43 | ![]() |
MECH2.GIF | 54kb. | 24.02.1998 20:45 | ![]() |
MECH3.GIF | 56kb. | 24.02.1998 20:43 | ![]() |
MECH4.GIF | 55kb. | 24.02.1998 20:43 | ![]() |
MECH5.GIF | 37kb. | 24.02.1998 20:41 | ![]() |
MECH6.GIF | 53kb. | 24.02.1998 20:42 | ![]() |
MECH7.GIF | 62kb. | 24.02.1998 20:41 | ![]() |
MECH8.GIF | 60kb. | 24.02.1998 20:41 | ![]() |
MECH9.GIF | 15kb. | 24.02.1998 20:39 | ![]() |
NXTGEN.GIF | 53kb. | 24.02.1998 20:38 | ![]() |
R2D2.GIF | 146kb. | 24.02.1998 20:39 | ![]() |
REDSHIP.GIF | 95kb. | 24.02.1998 20:37 | ![]() |
SHIPANI.GIF | 39kb. | 24.02.1998 20:34 | ![]() |
SHIP.GIF | 96kb. | 24.02.1998 20:36 | ![]() |
SPACE~84.GIF | 27kb. | 24.02.1998 20:29 | ![]() |
SPACE~90.GIF | 76kb. | 24.02.1998 20:31 | ![]() |
SPACE~92.GIF | 46kb. | 24.02.1998 20:27 | ![]() |
SPACE.GIF | 111kb. | 24.02.1998 20:34 | ![]() |
SPSHIP10.GIF | 10kb. | 24.02.1998 20:16 | ![]() |
SPSHIP12.GIF | 44kb. | 24.02.1998 19:44 | ![]() |
SPSHIP1.GIF | 28kb. | 24.02.1998 20:24 | ![]() |
SPSHIP2.GIF | 104kb. | 24.02.1998 20:24 | ![]() |
SPSHIP3.GIF | 18kb. | 24.02.1998 20:22 | ![]() |
SPSHIP4.GIF | 67kb. | 24.02.1998 20:22 | ![]() |
SPSHIP6.GIF | 36kb. | 24.02.1998 20:21 | ![]() |
SPSHIP7.GIF | 36kb. | 24.02.1998 20:20 | ![]() |
SPSHIP8.GIF | 114kb. | 24.02.1998 20:21 | ![]() |
SPSHIP9.GIF | 42kb. | 24.02.1998 20:18 | ![]() |
SPSHIP.GIF | 84kb. | 24.02.1998 20:26 | ![]() |
STARBADG.GIF | 14kb. | 24.02.1998 19:43 | ![]() |
STARWARS.GIF | 102kb. | 24.02.1998 19:42 | ![]() |
TIEF~130.GIF | 74kb. | 24.02.1998 19:42 | ![]() |
TREK.GIF | 21kb. | 24.02.1998 19:39 | ![]() |
VOYBAR2.GIF | 17kb. | 24.02.1998 19:38 | ![]() |
WINK~142.GIF | 19kb. | 24.02.1998 19:38 | ![]() |
XWINGS.GIF | 25kb. | 24.02.1998 19:38 | ![]() |
Spicker.gif | 6kb. | 03.11.1998 16:03 | ![]() |
thatsall200.gif | 21kb. | 13.12.1998 12:43 | ![]() |
CAMERA1.GIF | 108kb. | 25.02.1998 05:13 | ![]() |
XFILES.GIF | 25kb. | 25.02.1998 05:09 | ![]() |
under5.gif | 6kb. | 13.04.1998 00:28 | ![]() |
LIGHT~14.GIF | 37kb. | 25.02.1998 05:13 | ![]() |
LIGHT~18.GIF | 42kb. | 25.02.1998 05:13 | ![]() |
TWISTER2.GIF | 13kb. | 25.02.1998 05:09 | ![]() |
задание СПС лаб6.doc | 27kb. | 20.04.2005 11:14 | ![]() |
1. РАЗРАБОТКА СПРАВОЧНЫХ HTML-СИСТЕМ.DOC | 103kb. | 24.02.2001 09:44 | ![]() |
2. ОБЗОР СИСТЕМЫ HTML HELP.DOC | 95kb. | 24.02.2001 07:47 | ![]() |
3. Работа с HTML Work Shop.doc | 225kb. | 28.03.2005 11:56 | ![]() |
4. ИНФОРМАЦИОННЫЕ МАТЕРИАЛЫ HTML И ФАЙЛ ПРОЕКТА.DOC | 54kb. | 23.02.2001 11:07 | ![]() |
5. MICROSOFT HTML HELP.DOC | 263kb. | 24.02.2001 10:04 | ![]() |
Как организовать вызов дополнительного окна на гиперссылку.doc | 30kb. | 23.03.2005 22:33 | ![]() |
Добавление закладки ПОИСК в HTML-HELP.doc | 56kb. | 23.03.2005 23:01 | ![]() |
Создание Pop-Up окна в HTML-HELP файлах.doc | 53kb. | 21.03.2005 23:51 | ![]() |
Встраивание сценариев в HTML.doc | 27kb. | 28.03.2005 20:46 | ![]() |
Прочие элементы.doc | 26kb. | 27.03.2005 20:23 | ![]() |
Словарь по HTML для начинающих.doc | 43kb. | 28.03.2005 15:06 | ![]() |
Таблица цветов RGB и HTML.doc | 232kb. | 28.03.2005 15:15 | ![]() |
1. Добавление Flash к Html-Help.doc | 43kb. | 27.03.2005 18:59 | ![]() |
2. Подключение Flash к html.doc | 41kb. | 26.03.2005 10:27 | ![]() |
3. Атрибуты тэгов OBJECT и EMBED.doc | 76kb. | 26.03.2005 01:00 | ![]() |
Hh_C++.pdf | 77kb. | 12.02.2001 06:56 | ![]() |
Hh_VB.pdf | 60kb. | 12.02.2001 06:56 | ![]() |
1. ИСПОЛЬЗОВАНИЕ HTML HELP В ПРИЛОЖЕНИЯХ НА VISUAL BASIC.DOC | 123kb. | 24.05.2005 19:31 | ![]() |
2. Добавление HTML Help в приложение VB 6.0.doc | 28kb. | 02.04.2010 11:57 | ![]() |
3. Как вызывать help из приложения С++.doc | 48kb. | 06.03.2005 10:05 | ![]() |
4. Использование HTML Help в проекте MFC.doc | 29kb. | 17.03.2005 14:52 | ![]() |
Теги HTML.doc | 1691kb. | 31.03.2006 14:36 | ![]() |
01. Все, что нужно знать о программировании в Macromedia Flash.doc | 178kb. | 04.05.2005 14:38 | ![]() |
02. СПРАВОЧНИК по программированию во FLASH.doc | 407kb. | 04.05.2005 14:37 | ![]() |
03. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ в ACTION SCRIPT.doc | 605kb. | 03.05.2005 17:24 | ![]() |
04. Программирование клиентских приложений с использованием Macromedia Flash.doc | 133kb. | 28.03.2005 19:09 | ![]() |
05. ЯЗЫК ACTION SCRIPT.doc | 2998kb. | 20.04.2005 10:27 | ![]() |
06. ActionScript - во Flash.doc | 104kb. | 30.03.2005 11:08 | ![]() |
07. Отладка во Flash 5.doc | 124kb. | 01.03.2004 11:23 | ![]() |
08. Обнаружение ошибок в именах переменных Actionscript.doc | 26kb. | 26.11.2003 10:45 | ![]() |
09. Создание элементов сайтов с использованием Flash.doc | 133kb. | 28.03.2005 19:20 | ![]() |
10. Программное создание часов во Flash.doc | 76kb. | 28.03.2005 19:24 | ![]() |
11. Программирование во Flash.doc | 54kb. | 01.03.2004 10:54 | ![]() |
12. Стандарты Actionscript.doc | 218kb. | 26.03.2005 01:07 | ![]() |
03. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ в ACTION SCRIPT.doc
ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ в ACTION SCRIPT(FLASH)

Д

Проблема в изучении ООП не в его сложности, а том, что вам требуется изменить способ мышления относительно знакомых вам вещей. Это трудно, требуется такое же переосмысление, которое происходит, когда вы впервые лично встречаете "друга из интернета". Особенно, если вы ошиблись в своих представлениях о его половой принадлежности. Ничто не изменилось, это тот же самый человек, но в то же время это новый человек с лицом и голосом (и возможно с неимоверными грудями или бородой...). Сначала вы просто отвергаете это, мысленно воспринимаете "он-лайн" и "реального" человека, как двух различных людей, хотя и понимаете, что между ними имеется очень много общего, вы путаетесь в процессе общения и даже начинаете сомневаться кого из них раньше знали - его/ее/их. Возможно в этот момент вы оглядываетесь назад, пробуя приспособить старые факты к новой информации, перечитываете некоторые ваши старые электронные письма, улыбаетесь и возможно краснеете. Время идет, и всё постепенно становится на свои места. Вещи, казавшиеся странными, уже не удивляют. Вы привыкаете. И в конце концов вы спрашиваете себя: "Разве могло быть иначе"? Всё снова на своих местах. Ну вот, теперь вы - объектно-ориентированный программист.
Так что же это такое, Объектно-Ориентированное Программирование? Наверное, лучше начать с самого простого - с "объектов".
^
personA = new Object();
Вот он, personA это объект. Давайте-ка вспомним, что мы можем делать с объектом. К объекту можно добавлять свойства, например вот такие:
personA.name = "Ann";
personA.age = 31;
, что означает
-у объекта personA есть свойство name (имя), значение которого равно - "Ann"
-у объекта personA есть свойство age (возраст), значение которого равно - 31
Довольно просто, не так ли? А вот другой способ написать то же самое:
personA= { name:"Ann", age:31 }
Фигурные скобки { } используются для того, чтобы можно было быстро и удобно создать объект. Вот другой объект:
personB = new Object();
personB.name = "Bob";
personB.age = 25;
personB.hobby = "drinking";
, что опять-таки идентично следующему выражению:
personB = { name:"Bob", age:25, hobby:"drinking" }
![]() { name : "Bob", site : "bob.com", favs : { site1 : "flash.com", site2 : "flesh.com" } } Иногда такая форма записи оказывается очень удобной, но всё же у неё есть один существенный недостаток: здесь не всегда возможно комментирование. Поэтому стоит всё же заучить следующий синтаксис для быстрого создания объектов: o = { x:x, y:y, z:{a:a, b:b} } Обратите внимание на скобки, запятые, двоеточия и на отсутствие точки с запятой в конце. |
Если есть два объекта . - personA, и personB, значит, где-то есть ещё и третий объект, в котором находятся эти два. Вот что даёт нам первое понимание сути объектно-ориентированного программирования - все элементы находятся внутри объекта.
Если вам кажется, что мы двигаемся слишком быстро, то давайте на минутку остановимся. Чтобы осознать всё это нам понадобится следующая аллегория: представьте, что нам предстоит переезд из одного жилища в другое. Нам нужно перевезти все наши вещи. Здесь может быть два варианта развития событий: Мы можем подогнать грузовичок со съёмной брезентовой крышей к задней двери и высыпать в него разом содержимое всех наших ящиков, полок и шкафов, затем разгрести место в

Bob и Ann переезжают. Давайте поможем им разложить их вещи по коробкам. К счастью, "объекты" по своим свойствам похожи на "коробки", так что нам не придётся особенно стараться. Кстати, ведь немногие знают, что американцы чаще других меняют своё место жительства (если не считать тибетских кочевников). Каждые пять лет трое из пяти американцев переезжают. В общей сложности это миллионы и миллионы переездов. Дальнейшие исследования показывают, что ни один из таких переездов не обходится без коробки с пометкой "важное" ("important stuff"). Из солидарности с таким огромным числом американцев и в подтверждение чрезмерной значимости содержимого коробки с надписью "важное", именно с неё мы и начнём:
importantStuff = new Object( );
importantStuff.money = 500;
importantStuff.papers = 96;
importantStuff.annPassport = "er246vjl";
importantStuff.bobPassport = "kl554mkt";
![]() |

importantStuff.jewelryBox = 1;
Вроде бы всё в порядке, но сможет ли Ann найти своё ожерелье, когда она захочет его надеть? Все наши коробки мы снабдили списком содержимого, но её ожерелья в этом списке не значится. (надеюсь, понятно, почему?). Во избежание возникновения такой ситуации нам нужно создать список содержимого шкатулки с драгоценностями. Вот так, например:
importantStuff.jewelryBox = new Object( );
importantStuff.jewelryBox.necklace1 = "Pearl"; // подделка
importantStuff.jewelryBox.necklace2 = "Diamond"; // подделка
Теперь у шкатулки тоже есть список содержимого (комментарии, естественно, никому кроме нас не видны). Это, конечно, не лучший выход из создавшегося положения, так как список содержимого шкатулки с драгоценностями находится внутри закрытой коробки, которую Ann должна будет открыть, чтобы узнать, где хранится её ожерелье. Но, к счастью для нас, подобным же образом ведут себя объекты в Actionscript, так что оставим эти коробки, как они есть сейчас. Надеюсь, Ann не будет против.
Итак, мы поместили объект внутрь объекта - коробку внутрь коробки. Теперь нам не составит труда рассмотреть и другую ситуацию. Допустим, понадобилось две машины, чтобы поместились все вещи. Некоторые коробки пошли в грузовик, а некоторые в легковушку. Теперь "важное" находится в легковушке, и Ann найдёт своё ожерелье следующим образом car.importantStuff.jewelryBox.necklace1. Это похоже на то, что мы уже видели при создании объектов personA и personB. Мы создавали их не на пустом месте, а "где-то", то есть внутри какого-то другого объекта. Таков принцип работы Actionscript. В случае с Ann и Bob этот конечный объект - планета Земля, Вселенная, Космос. В Actionscript, тоже есть нечто подобное - объект объектов, так сказать.
В общем-то, эти примеры с объектами внутри других объектов кажутся достаточно простыми, но чтобы правильно понять происходящее с ними, нам придётся "копнуть" чуточку поглубже. Помните: с пониманием приходит и умение, и сила. Окунитесь во всё это! Почувствуйте, как ваш разум наполняется сущностью явлений. "Загляни в свои чувства, Люк! Я твой отец..." Но о чём это я? Ах да... об объектах мы ещё поговорим...

^
Давайте ненадолго вернёмся обратно и попытаемся поместить объект внутрь 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"
Е ![]() У personA есть свойство _x, со значением 5. У personA есть мувиклип favs, у которого есть свойство_x, со значением 100. Совершенно очевидно, что мы можем сравнивать мувиклипы с объектами, а элементы вроде _x или _width со свойствами (на самом деле, это и есть свойства). |

Т

^
Первая, наиболее очевидная импликация это то, что внутренний (дочерний) объект некоторым образом связан с внешним (родительским) объектом. Это называется родительско-дочерним отношением, хотя в данном случае более точно следовало бы назвать это материнско-зародышевым отношением. Если мать попадает под поезд, младенец в ее утробе разделяет ее судьбу. Если вы удаляете родительский объект, дочерний объект также исчезает. Обратное утверждение, разумеется, не верно, если удаляется дочерний объект, родительский остается неизменным, за одним исключением - минус один дочерний объект. Обратите внимание на то, что дочерние объекты могут иметь только одного родителя. Младенцы могут иметь только одну мать, объекты - только одного родителя (подумайте про муравьиную матку, если встретилось много объектов). Существуют другие типы родительско-дочерних отношений, которые мы в конечном счете обсудим.
^
Область видимости является вторым следствием вложенности объектов. Область видимости означает что-то вроде "контекста", в том смысле, "что именно можно увидеть/понять с разных точек/мест". Возвращаясь опять к метафоре с младенцем, младенец может видеть "внутри" своей матери (с фонариком), но не может видеть видеть то, что видит мама. В 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: function(){return this.favs.site1;} // обратите внимание на '.favs.'
Ну вот, теперь всё работает. А что нам возвращается?
test4: Свойство site1,
в контейнере favs,
который находится в нашем контейнере.
// ? попробуйте найти значение, используя новый код test4...
^
В нашем последнем примере мы уже немного затронули этот параметр. Давайте теперь остановимся на нём для детального рассмотрения. Всё имеет своё место, и это место имеет имя. Вы, должно быть, очень этому рады, так как теперь станет ещё проще организовывать и упорядочивать ваши программы, тем более, что именно так мы и поступаем в реальной жизни. Вот взять хотя бы ваш адрес! Он, наверное, выглядит как-нибудь так: "имя, номер дома, улица, район, город, округ, страна". Почтовая система обращается к этим данным, чтобы вас найти. В старину программы писались в виде кучи имён, но, когда они разрастались до размеров города, этот вид записи оказывался неэффективным. Чтобы организовать такой "комплекс", нужна была система получше. Одно из преимуществ объектно-ориентированного программирования - это "комплексная организация". Всё имеет свой "адрес", и с этого адреса вам видны только некоторые вещи. В объектно-ориентированной среде программирования нет глобальных переменных (то есть свойств, которые видны отовсюду). На то есть веская причина: мы пользуемся объектно-ориентированной средой для того, чтобы лучше упорядочивать и организовывать элементы. Если бы нам было разрешено использовать свои имена вместо почтового адреса, то почтовая система перестала бы функционировать.
Ключевая концепция в объектно-ориентированном программировании: ^ . Как именно будет выполнена конкретная задача, зачастую значительно менее важно по сравнению с тем, где она будет выполнена. Представьте себе парочку, занимающуюся любовью в общественной столовой... Вот уж действительно - не так важно "как", как "где" - тот самый случай.
В ![]() |
^
Отлично, это было нетрудно. вы можете создавать объекты, объекты со свойствами (которые часто называются членами (members) или атрибутами (attributes) и эти свойства имеют свои имена и значения. Как мы уже видели, этими свойствами могут быть и другие объекты, которые, в свою очередь, могут иметь свойства и так далее, и так далее... Такой тип связи называется связь типа has a. В терминологии объектно-ориентированного программирования полным-полно длинных слов вроде "полиморфизм" или "инкапсуляция", но хватает и коротких вроде "this", "has a", или "is a"... К счастью для нас, понять такие концепции бывает проще, чем озаглавить.
Связь типа has a состоит в том, что у объекта имеется внутренний объект. Например, у машины имеется ('has-a') топливный бак. У нее имеется ('has-a') рулевое колесо. У нее имеется ('has-a') двигатель. ('has-an' означает тоже самое, что 'has-a'. Английская грамматика!). На первый взгляд, это кажется очевидным, но по сравнению с другими типами связей между объектами вроде is-a (т.е. "является", "машина является средством передвижения"), все не так просто. Объектно-ориентированное программирование во многом опирается именно на эти две концепции.
Но что-то мы забегаем вперёд. Пока что "поиграйтесь" с упражнениями, приведёнными ниже. Потом мы перейдём к классам - шаблонам для изготовления объектов.
== Упражнение ==================
Вот несколько образцов объектов для сортировки. Некоторые из них простые, некоторые потруднее. Есть и совсем "хитрые", не имеющие однозначно правильного решения. Просто перемещайте элементы и сортируйте их.
<<link to swf>>
^
Забудьте то, что знаете о функциях. Забудьте, что они получают аргументы и возвращают ответ. Забудьте, что они хороший способ сократить блок кода до простого имени. Фактически они являются просто шаблонами, используемыми для задания свойств в объекте. Здесь ключевое слово - ШАБЛОН. Шаблон может использоваться для создания новых объектов, а так же для изменения существующих. С одним и тем же шаблоном можно создавать так много объектов, как это вам необходимо.
Ни увидеть, ни потрогать, ни понюхать сам шаблон невозможно, зато это можно сделать с объектами производимыми при его помощи. Шаблон можно представлять как некую идею, а объекты тогда будут предметами из реального мира, такими как, скажем, ваш ботинок… Если вы запутались, то для сравнения задумайтесь о том, что потрогать мысль о ботинке нельзя, зато можно прикоснуться к самому ботинку.
Здесь немало абстракций, но повторю, что сами понятия очень просты. Вот пример:
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... | ![]() |
Р ![]() Первая буква в названии класса должна быть заглавной. Первая буква в названии экземпляра класса должна быть маленькой. Придерживаясь этому правилу вам всегда будет легко различить классы и объекты. Хотя класс это всего лишь эфирная абстракция, а экземпляр настолько реален, что от его укусов остаются следы на коже, в программе и тот и другой имеют тенденцию выглядеть подозрительно одинаково. Помните: ClassName, instanceName |
Класс (Class) это шаблон, который используется для создания новых объектов, называемых "экземплярами" (instances). Объекты и экземпляры суть одно и то же и могут быть взаимозаменяемыми (и часто!). Упомянутое слово "экземпляр" обычно предполагает объекты, созданные из класса с использованием оператора new, в то время как "объект" является более общим термином для всех объектов.
Поскольку экземпляры происходят от классов, а классы создают экземпляры, то с ними проще разобраться рассматривая оба сразу, так что давайте перейдем к следующему разделу...
^
![]() | | Определения Класс: Class (шаблон используется для указания свойств объекта). Экземпляр: instance (объект, созданный с помощью Class). |
Связь классов и экземпляров с тем, что мы уже рассмотрели:
Экземпляры (objects) - реальные объекты, которые могут иметь свойства (например inst1.x имеет свойство x).
Экземпляры можно рассматривать как контейнеры, классы - как описание объектов, помещаемых в контейнер.
IЭкземпляры имеют ограниченную область действия и не "видят" ничего снаружи ... Скоро мы также рассмотрим подобную ситуацию с классами.
Экземпляры создаются с помощью классов и эти понятия могут быть взаимосвязанными, но мы только начинаем знакомиться с этой темой...
М

1) Template = function()
2) {
3) this.x = 5;
4) this.y = 7;
5) }
6) inst1 = new Template( );
Каким образом получилось так, что inst1 заканчивается свойствами x и y? Откуда ActionScript знает, что это именно то, что нам нужно? Давайте разберём этот пример шаг за шагом. Первым делом определяется класс и это только описание, от него мало толку, пока его не вызвали. Первая строка, которая указывает на что-то конкретное - строка #6. Правая сторона уравнения всегда первична и рассматривается в первую очередь. Вот мы с неё и начнём. Слово new используется в разных случаях, но самое главное, зачем оно нам может понадобиться - создание нового объекта (поля, контейнера...) без свойств и имени. Потом оно отсылает этот объект к тому классу, на который указывает выражение, находящееся рядом с ним. В нашем примере это класс, с именем Template (Шаблон). Итак, правая часть уравнения в строке #6 отсылает "объект без свойств" к "Template".
К

inst1 = << a box(object) with two properties, x:5 and y:7 >>
Следующее, что нужно сделать - дать контейнеру имя. В нашем примере это "inst1". Вот и всё. Представьте людей, ожидающих коробки в конце конвейера, чтобы написать на них свои имена и затем забрать домой. Теперь это ИХ коробки, тогда как раньше это были ПРОСТО коробки на конвейере. Вот для чего нужна левая часть уравнения в сроке #6 - дать имя объекту. Это происходит, когда класс закончил свою работу. Теперь можете проверить конечный объект на наличие свойств x и y. Они должны иметь значения 5 и 7.
^ , это функция (по крайней мере в 5-й версии). Это может быть ваша собственная функция или встроенная, такая как Color или Array. Только классы, встроенные или созданные, могут создавать экземпляры. Вскоре мы разделим функции на два типа: классы (classes) и методы (methods). Тогда во избежание путаницы можно будет перестать пользоваться словом "функция".
С ![]() |
Возможно, вам кажется, что не всякий класс получает "безымянный" контейнер. Это отчасти верно, например:
A = function()
{
return 7;
}
y = A(); // 7
Первое, что следует отметить, это не класс. Классы никогда не возвращают значений и они всегда вызываются с помощью оператора new. На самом же деле это метод (method), о котором речь пойдёт несколько позже. А пока вкратце скажем, что метод это функция (function), имеющая принадлежность к классу. Фактически термины "функция" и "метод" часто взаимозаменяемы. "Классы" же, это совсем другое дело. Как бы мы ни называли их, все функции "принимают" объекты и присваивают им значение this. Классы "принимают" пустые объекты, а методы принимают существующие объекты. Но вернёмся к нашим примерам...
Написав A(), может показаться, что мы никоим образом не отправляем объект в функцию, чтобы "налепить" на него свойства. Откуда бы ему взяться? Однако, если даже вы не определяете объект (как в случае с использованием new, или inst.A();), то в этом случае под объектом подразумевается (и соответственно направляется) текущий контейнер. Контейнер, в котором помещается весь этот код это, конечно же, _root (то есть _level0, если именно отсюда берётся код). Таким образом, используется именно этот контейнер. ( A() на самом деле означает _root.A(); ). Следующий код показывает это:
A = function()
{
this.x = 5; // _root.x = 5
return 7;
}
var y= A();
trace (_root.x); // 5
trace (y); // 7
Как мы видим, _root был отослан в функцию и присвоен ключевому слову this. После выполнения функции, свойства, назначенные параметру this, также стали распространяться и на _root, как следует из вышеприведённого примера.
^
Что происходит, если мы определяем свойство, используя ключевое слово var? Создаётся локальное свойство. "Локальный" - значит "действующий только в пределах границ данного объекта", или, если хотите, "…в пределах границ данного контейнера". Что-то типа "первый парень на деревне" - они "рождаются" и "умирают" в пределах одной маленькой деревеньки. Никогда никуда не "выбираются". Вот пример локального свойства, определённого в классе:.
A = function()
{
var temp = 5;
this.x = temp;
}
trace(A.temp); // not here
Где именно действует свойство temp в данном примере? Его действие распространяется на часть функции A, являющуюся "объектом активации" (иногда также используется термин "конструктор функции"). Означает ли это, что мы найдём его с помощью выражения A.temp? Нет. Потому что в этом примере мы его только определяем, целиком объект активации остаётся не вызванным пока не вызвано выражение A(). Означает ли это, что он станет доступным после того, как вызвано выражение A? Нет. Потому что, после того, как вызвано A, он не принимается в расчёт. Вообще, каждый раз, когда вызывается функция, создаётся такой вот объект активации, и каждый раз, когда функция заканчивает своё действие, этот объект активации перестаёт приниматься в расчёт (хотя во Flash 5 из памяти он обычно не удаляется и не исчезает. Ай-яй-яй!). Итак, temp действует в пределах границ этого временного объекта. Однако, из-за того, что у этого объекта активации нет имени и он просто "находится неподалёку" во время действия функции, никакая другая часть программы не имеет к нему доступа (если только вы не вызовете функцию из функции и та вторая функция не увидит его с помощью своего свойства this). Когда он заканчивает своё действие, его локальные свойства не сохраняются.
М

При использовании первого объекта A существует ряд ограничений. Главная задача этого объекта - дать имя блоку функций, чтобы его можно было вызвать. После этого можете использовать его именное пространство для хранения информации о самой функции. Такой информацией может быть, например, имя класса объекта (которое может понадобиться для исправления ошибок), или счётчик, который следит за количеством экземпляров, вызванных с помощью объекта. Такие свойства никак не повлияют на работу функции. В последующих экземплярах от них не останется и следа.
Второй объект, объект активации, производит самопостроение в процессе создания экземпляра. Он бывает совершенно необходим. У него свои границы действия, а его собственное ключевое слово this присваивается контейнеру, в котором он может создавать или изменять свойства. И это только часть его возможностей в создании экземпляра, самый распространённый, но вовсе не самый значимый случай его использования. У нас будет возможность убедиться в этом, когда мы начнём разбираться с прототипами.
И ![]() |
Наследование
Всё, что мы делали до сих пор можно охарактеризовать, как "композиция". В нашем случае это слово означает придумывание, составление объекта из более мелких компонентов, а не урок музыки. Наверняка вы уже используете композицию в ваших программах. Прежде, чем мы двинемся дальше, давайте дадим этому понятию точное определение, дабы потом не забыть, что же это такое. Как уже было сказано ранее, это понятие часто обозначается, как "имеется" (Has a). У объекта А имеется объект В. В доме имеется кухня, у собаки имеется хвост, у мятежника имеется причина. Трудно представить себе объект, у которого или в котором ничего не имеется (то есть ничего нет), в конце концов, во всём имеется (есть) что-то, всё из чего-то состоит. Однако всегда ли это так? Как насчёт самих идей? Например, какое отношение имеет "приспособление" к "холодильнику"? Какое отношение "разводной ключ" имеет к "разводу" или к "инструменту"? Какое отношение Джеймс Дин имеет к Рональду Рейгану? К Элвису? К Че Геварре? Как только мы начинаем организовывать идеи и концепции, одних "имеющихся" понятий становится недостаточно. Теперь нам потребуется "наследование" -- понятие из разряда "являющихся" (Is a).
Прежде чем продолжить, давайте познакомимся с этим понятием. Понятие "имеющийся" предполагает содержание одного предмета в другом. В машине есть двигатель, в двигателе есть поршни, в поршнях есть... э-э-э... такие маленькие круглые чёрные штуковины, кажется (прошу прощения, но этим ограничиваются мои познания в автомобилях). Понятия "являющиеся" используются, когда один объект является типом другого. Так автомобиль является транспортным средством, транспортное средство является машиной, машина является созданным человеком приспособлением с различными вращающимися частями (ещё раз прошу прощения!). Теперь самое время остановиться и поразмыслить о различных системах наследования. Вот некоторые разъяснения.
"Наследование" несложно осознать, но его трудно представить визуально. В реальном мире ничто не ведёт себя абсолютно одинаково. "Наследование", это скоре подсознательная система классификаций, если так можно выразиться. Очень просто увидеть млекопитающее, когда с ним разговариваешь, но ведь такого животного, как "млекопитающее" не существует. Есть только типы млекопитающих. Это обстоятельство, конечно же, не означает, что слово "млекопитающее" для нас бесполезно. Но ведь нет же в зоопарке клетки с надписью "млекопитающее". Раньше мы говорили об объектах, как о коробках или контейнерах. Это допустимо для "композиции", где вы помещаете одни объекты внутрь других. Однако такого рода определения не работают при использовании "наследования". Чтобы представить себе "наследование", нам понадобится немного другая модель.
Давайте-ка ещё раз убедимся, что мы поняли разницу между "имеющимися" и "являющимися" отношениями между объектами (рассмотрим хотя бы простейшие случаи). Изучите нижеприведённый список и определите, являются ли отношения между объектами в каждой строке "наследованием" или "композицией" - "являющимися" или "имеющимися". Попробуйте найти единое общее для каждой группы "являющихся" (наследований), а также для всех "имеющихся" (композиций) примеров.
Животное, млекопитающее, собака, пудель.
Компьютер, материнская плата, процессор, микросхема.
Артист, певец, рок-звезда, Элвис.
Дом, кухня, раковина, пробка.
Книжная лавка, компьютерный отдел, стенд "Flash", книга по actionscript.
Книга, книга по компьютерной тематике, книга о Flash, книга по actionscript.
Книга, глава, параграф, предложение, слово.
Континент, страна, регион, город/деревня, улица, дом.
Азия, Китай, Фудзияма, Сиань, ЗенгКуоАн, 15.
http://www.macromedia.com/support/flash/
Приложение, документ, полоса прокрутки, указатель.
Окно, диалоговое окно, сообщение об ошибке, очередь на печать.
Еда, десерт, пирог, банановый крем.
01 (204) 435-8301
Теперь давайте вместе подробно рассмотрим эти примеры (только не будем на них особенно задерживаться!)
Животное, млекопитающее, собака, пудель - Наследование.
Пудель - это собака, собака - это млекопитающее, млекопитающее - это животное. Какие свойства добавляются на каждом уровне? Попробуйте "прикрепить" вот эти: шерсть, глаза, дикий, домашний.
Скачать файл (21152.1 kb.)