Курс лекции по дисциплине Современные программные средства
скачать (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 | ![]() |
07. Отладка во Flash 5.doc
Отладка
(статья написана для FLASH-5.
Во FLASH-6 появился настоящий отладчик, работа с которым здесь не описывается)
Содержание:
Средства отладки
Методика отладки
Вперед!
Мы уже исследовали множество технических приемов, а также синтаксис для выполнения многих задач. Однако, начав самостоятельную работу с ActionScript, вы неизбежно будете совершать множество ошибок (особенно на первых порах, когда все еще случаются синтаксические и концептуальные ошибки). Не отчаивайтесь! Даже опытные программисты много времени тратят на отладку (исправление неправильно работающего кода).
Важно досконально проверять свою продукцию и в первую очередь находить программные ошибки. Это означает, что тестирование нужно проводить различными браузерами и версиями этих браузеров на всех платформах, которые вы намереваетесь поддерживать. Проводите тестирование под различными версиями ОС Windows и, если это важно, с более старыми версиями подключаемых модулей Flash, которые можно найти по следующему адресу:
http://www.macromedia.com/support/flash/ts/documents/oldplayers.htm
Обсуждение тестирования и контроля качества (QA) выходит за рамки этой книги. Скажем лишь, что необходимо осуществлять тестирование и контроль качества, при этом следует иметь бланк сообщений об ошибках, в котором указываются платформа, браузер и его версия, версия подключаемого модуля Flash, а также описание последовательности выполняемых действий. Все это позволит воспроизвести ошибку, что станет первым шагом на пути к ее исправлению.
Отладка является важной частью программирования и тем, что отличает выдающихся программистов от программистов средней руки. Новички часто счастливы, если ранее возникавшая ошибка вдруг почему-то исчезла. Опытный программист знает, что такая ошибка все равно всплывет на поверхность, причем в самый неподходящий момент, и, хотя она возникает лишь переодически (а возможно, именно поэтому), она требует дальнейшего расследования. С другой стороны, неопытные программисты часто прячутся от ошибок или теряют присутствие духа при ошибках очевидного происхождения, в то время как опытные программисты очень внимательно относятся к сообщениям об ошибках и знают, что те ошибки, которые легко воспроизвести, легче всего исправить.
Для успешной отладки требуется логика и дисциплина при проведении исследований, а также достаточное владение необходимыми средствами. В этой главе будут вкратце рассмотрены основы инструментов отладки и некоторые общие приемы для решения проблем с кодом. Запомните, что для отладки характерно постоянное оспаривание предположений, которые мы делаем. Какая-то проблема часто обусловлена совсем другой более общей проблемой (болезнью). Средства отладки применяются для того, чтобы выяснить, действительно ли код выполняет то, что задумано, а это приводит к пониманию и исправлению проявившейся ошибки (симптома).
^
В ActionScript имеются следующие инструменты для отладки:
Функция trace( )
Команда List Variables
Команда List Objects
Профайлер (Bandwidth Profiler)
Отладчик (Debugger)
Все эти средства используются в режиме тестирования. Чтобы войти в режим тестирования, нужно экспортировать Flash-ролик из редактора с помощью команды Control

Кроме этих формальных средств отладки есть сообщения об ошибках, которые Flash отправляет в окно Output во время экспорта ролика или при выполнении команды Check Syntax (проверка синтаксиса). Check Syntax - это команда, выводимая при нажатии кнопки со стрелкой в правом верхнем углу панели Actions. Сообщения об ошибках часто указывают точную причину проблемы, вплоть до номера строки исходного кода, которым она вызвана. Полное объяснение всех сообщений об ошибках есть в фирменном руководстве компании Macromedia по ActionScript или в справочной системе ActionScript Reference Guide.
Обратите внимание на то, что не все ошибки влекут вывод сообщений. Например, если при вычислении получается неверный результат, то это программная ошибка, хотя и не вызывающая аварийного завершения работы браузера. Кроме того, есть два типа сообщений об ошибках: так называемые сообщения об ошибках этапа компиляции (compile-time), возникающие при попытке экспорта сценария, и так называемые ошибки времени исполнения (runtime), которые возникают только тогда, когда Flash-ролик воспроизводится и достигает той точки, в которой генерируется ошибка.
Ошибки этапа компиляции указывают на какие-то синтаксические ошибки, например, отсутствие скобок или закрывающей кавычки. Обращайтесь к части III "Справочник по языку", чтобы узнать точный синтаксис каждой команды, или к главе 14 "Лексическая структура" за разъяснением правильного синтаксиса ActionScript.
Ошибки времени выполнения могут быть весьма разнообразными и свидетельствовать о проблеме, вызванной не текущим рассматриваемым кодом, а неверным результатом более ранних действий. Допустим, например, что делается попытка использования значений, возвращенных командой loadVariables( ), отправленной серверу. Если сценарий Perl, отвечающий на команду, не предоставил верных данных в правильном формате, то исправлять нужно сценарий Perl. Сценарий Flash может быть совершенно верным, но не выполниться из-за полученных неверных входных данных.
В итоге мы приходим к важной технологии - оборонительному программированию. Множество реальных и потенциальных ошибок можно избежать, если всегда проверять ситуации, чреватые проблемами, которые называют контролем ошибок (error checking) либо, иногда, проверкой данных (data validation), если это относится к вводу, производимому пользователем. Например, прежде чем выводить вопросы вопросника, можно убедиться в том, что эти вопросы правильно загрузились. Можно проверить и каждый вопрос, чтобы быть уверенным в правильности его формата для вывода. Если полученные данные были введены неверным образом, следует вывести соответствующее сообщение об ошибке, которое позволит программисту или пользователю предпринять корректирующие действия.
^
В ActionScript мощнейшее средство выявление ошибок является также и простейшим: это функция trace( ). Как демонстрировалось на протяжении всей этой книги, функция trace( ) направляет значение выражения в окно Output в режиме тестирования. Например, если добавить в ролик такой код:
trace("hello world");
то в окне Output появится текст "hello world". Аналогично трассируется значение переменной:
var x = 5;
trace(x); // Выводит 5 in в окно Output
С помощью функции trace( ) можно проверять состояние переменных, свойств и объектов и тем самым отслеживать ход выполнения кода. Источник проблемы часто можно обнаружить при проверке результата каждой операции сценария. Например, допустим, что некоторая функция должна возвращать значение, но с помощью команды trace( ) обнаруживается, что возвращается значение undefined (которое никак не выводиться в окно Output). В результате становится ясно, что нужно внимательно рассмотреть функцию и проверить, правильно ли в ней используется команда return для возврата осмысленного значения.
^
При воспроизведении Flash-ролика в режиме тестирования можно проверить значения текущих переменных, определенных в нем, с помощью команды Debug

В примере 19-1 приведен образец вывода после выполнения команды List Variables. Обратите внимание, что переменная rate показана как объявленная, но не определена undefined. Такие детали иногда трудно обнаружить с помощью функции trace( ), поскольку trace( ) преобразует значение undefined в пустую строку ("").
^
Level #0:
Variable _level0.$version = "WIN 5,0,30,0"
Variable _level0.calcDist = [function]
Variable _level0.deltaX = 194
Variable _level0.deltaY = 179
Variable _level0.rate = undefined
Variable _level0.dist = 264
Movie Clip: Target="_level0.clip1"
Movie Clip: Target="_level0.clip2"
Обратите внимание, что обе команды - trace( ) и List Variables - дают только мгновенный снимок. Часто требуется следить за изменением переменной во времени или проверять изменение многократно. Следить за изменениями переменных позволяет отладчик (Debugger),который будет обсуждаться позднее.
^
Команда List Objects создает каталог текста, фигур, графических изображений и мувиклипов, определенных в ролике. Чтобы выполнить ее, выберите из главного меню Debug

В примере 19-2 приведен образец выдачи команды List Objects. Обратите внимание на явную пометку текстовых полей, которые могут редактироваться, и показ экземпляров мувиклипов с автоматическими именами (например, _level0.instance1).
^
Level #0: Frame=1
Shape:
Text: Value = "variables functions clip events startDrag stopDrag Math"
Text: Value = "this movie demonstrates a little math, variables, movie clip events"
Text: Value = "draggable distance"
Text: Value = "calculator"
Movie Clip: Frame=1 Target="_level0.instance1"
Shape:
Text: Value = "distance between clipstotal:horizontal:vertical:"
Edit Text: Variable=_level0.dist Text="222"
Edit Text: Variable=_level0.deltaX Text="174"
Edit Text: Variable=_level0.deltaY Text="138"
Movie Clip: Frame=1 Target="_level0.obj1"
Shape:
Movie Clip: Frame=1 Target="_level0.obj2"
Shape:
Опять-таки, List Objects предоставляет только мгновенный снимок в данный момент времени. Чтобы получить текущее значение объектов после их изменения, команду нужно выполнить снова.
^
Профайлер Bandwidth Profiler используется для моделирования загрузки Flash-ролика при разных скоростях модема. С помощью Bandwidth Profiler можно измерить производительность ролика, проверить код предварительной загрузки и проследить за положением воспроизводящей головки (Playhead) на главной шкале времени (Main Timeline). Включить Bandwidth Profiler можно следующим образом:
Находясь в режиме тестирования из главного меню выбрать ViewBandwidth Profiler.
В меню Debug выбрать нужную скорость загрузки.
Для моделирования загрузки ролика на этой скорости выбрать в меню ViewShow Streaming.
На производительность Flash могут влиять многие факторы, в том числе используемые объекты и требования к Flash Player. Например, при использовании больших растровых изображений, выводе сложных фигур, состоящих из многих кривых, и чрезмерном использовании альфа-каналов производительность может существенно упасть. Уменьшение времени загрузки и отображения объектов может сократить требования к пропускной способности каналов и мощности процессора, необходимых для выполнения сценариев. Что говорить, ActionScript обычно работает значительно медленнее, чем компилируемые языки, такие как C.
С точки зрения ActionScript, больше всего требуют операции, которые должны ждать окончания отправки или получения данных, либо повторяющиеся многократно (например, исследование большого массива).
ПРЕДУПРЕЖДЕНИЕ
Отображение элементов в окне Output происходит очень медленно по сравнению с "невидимыми" операциями ActionScript. Если простой ролик кажется чрезмерно прерывистым, попробуйте отключить все предложения trace( ) или воспроизвести ролик в режиме, отличном от режима тестирования.
Обсуждение того, как писать оптимальный код, находится за рамками данной книги, но все же мы дадим некоторые советы:
Не повторяйте операцию многократно в цикле, если того же результата можно добиться, выполнив ее один раз вне цикла.
Не следует дожидаться в цикле совершения некоторого события. Ожидание может оказаться долгим или событие вообще никогда не произойдет, а производительность снизится или предложение окажется заблокированным. Вместо этого используйте обработчики событий, такие как on (load), запускаемые при возникновении или завершении некоторого события.
При каждой возможности обобщайте свой код, возможно, даже используя для этого интеллектуальные клипы (Smart Clips). Например, вместо двух почти идентичных процедур по 5 Кбайт можно написать одну более общую процедуру и вызывать ее дважды с разными параметрами, что позволит сэкономить 5 Кбайт. Об обобщении кода рассказывается в главе 9 "Функции", а интеллектуальные клипы обсуждаются в главе 16 "Среда редактирования ActionScript".
Если используется Flash 5 Player, а оптимальная работа ActionScript для всего проекта критична, попробуйте использовать вместо новейших технологий прежний синтаксис в стиле Flash 4. Во Flash 5 некоторые операции осуществляются быстрее, если сформулировать их в синтаксисе Flash 4. Например, функция Flash 4 substring( ) быстрее, чем методы substring( ) и substr( ) Flash 5, а Tell Target из Flash 4 быстрее, чем точечная запись Flash 5.
Экспортируйте Flash-ролики, удаляя предложения trace( ) путем задания опции FilePublish Settings
Flash
Options
Omit Trace Actions.
Помните, что удаление мувиклипа и прикрепление его заново обходится дороже, чем перемещение существующего мувиклипа. При всякой возможности повторно используйте входящие в ролик элементы.
Перечень общих приемов оптимизации Flash можно найти по следующему адресу: http://www.macromedia.com/support/flash/publishexport/stream_optimize/stream_optimize.html.
19.1.5. Отладчик
Отладчик (Debugger) служит весьма полезным инструментом, который предоставляет организованный доступ к значениям свойств, объектам и переменным Flash-ролика и даже позволяет изменять значения переменных на этапе исполнения.
Чтобы включить отладчик, в среде разработки Flash из главного меню выберите Control

Просматриваемый ролик был первоначально экспортирован с разрешенной отладкой.
Flash Player, используемый для просмотра ролика, поддерживает отладку.
Во время отладки программа Flash запущена.
Чтобы экспортировать ролик с разрешением отладки в браузере, выберите File



СОВЕТ
Не для всех версий Flash Player есть соответствующий Player с поддержкой отладки. Поищите на сайте поддержки компании Macromedia http://www.macromedia.com/support/flash новейшую версию Flash Player с поддержкой отладки.
В верхней части отладчика (Display List) показывается иерархия мувиклипов. Для исследований свойств и переменных конкретного мувиклипа выделите его в Display List. В нижней части отладчика есть три закладки - Properties, Variables и Watch, которые динамически обновляются, показывая свойства и переменные выделенного мувиклипа. Чтобы задать значение свойства или переменной, дважды щелкните по значению и введите новые данные. Чтобы выделить один или несколько элементов для удобства просмотра, выделите их на вкладке Properties или Variables, после чего выберите Add Watch при помощи кнопки со стрелкой в правом верхнем углу отладчика. Все "контролируемые" переменные будут добавлены во вкладку Watch (она позволяет одновременно просматривать переменные разных мувиклипов).
Дополнительные данные относительно механизма использования отладчика ищите в подробной документации компании Macromedia в разделе "Troubleshooting ActionScript" справочного руководства ActionScript Reference Guide. Если вы потеряли свое справочное руководство, то его можно взять на сайте компании Macromedia по адресу:
http://www.macromedia.com/support/flash
или в меню Help программы Flash.
^
Взглянем кратко на некоторые приемы, используемые при отладки кода. Отладка может быть разбита на три отдельных этапа:
Обнаружение ошибок
Выявление источника ошибки
Исправление ошибок
Очень часто проблемы кода выявляются в процессе активного программирования. Это означает, что пишется некий код, тестируется Flash-ролик, и оказывается, что он работает не так, как нужно. Проблема обнаружена.
Чем раньше обнаружена проблема, там лучше. Поэтому процесс написания кода должен быть постоянным чередованием приливов и отливов: написать насколько строк кода, экспортировать ролик, проверить, что эти строки работают так, как предполагалось, написать еще несколько строк, экспортировать, проверить и т.д. Убедитесь в правильности работы каждого компонента программы, прежде чем тестировать программу в целом. Постарайтесь не увлечься написанием сложного тела программы без частой попутной проварки ее работоспособности.
Не считайте свой ролик совершенным лишь потому, что не можете обнаружить в нем ошибки сами. Всегда выделяйте время для внешней проверки пользователями, особенно если создаваемый вами код входит в продукт или сервис, предназначенный для некоего клиента. Как уже говорилось, реализуйте проверку ошибок, чтобы исключить возникновение проблем из-за некорректного ввода данных. Например, если вы пишете функцию, которой нужен целочисленный параметр, можно использовать оператор typeof для проверки правильности типа вводимых параметров. Проверяйте также граничные значения, например, очень большие или очень маленькие, а также отрицательные значения и ноль.
Не стоит недооценивать поиск минимума воспроизводимых действий, с помощью которых можно воссоздать проблему. Они должны представлять собой наикратчайший путь к воспроизведению ошибки. Отчет об ошибке типа: "я воспроизводил ролик в течении часа, а потом все заглохло" принесет мало пользы. Полезные отчеты об ошибках содержат последовательность действий, например:
Ввести 0 в качестве количества лет.
Щелкнуть по кнопке Calculate (Вычислить).
В поле Results (Результат) вместо суммы в рублях выводится "NaN".
Признание наличие ошибки является лишь началом пути к ее устранению. Первейшей задачей является выяснение источника ошибки, как бы высоко он ни находился. Ошибку можно представлять себе как сердечный приступ, причиной которого может быть нарушение режима питания, происходившее за годы до него. Сердечный приступ служит просто наиболее явственно проявившимся симптомом, а в исправлении нуждается нечто более ранее в процессе. Большинство ошибок вызывается ложными предположениями: мы предполагаем, что правильно ввели имя переменной, хотя это не так, или что в текстовом поле находятся числовые данные, а их там нет. Путем выполнения ряда предложений trace( ), команд отладчика или команды List Variables можно сравнить наши предположения с тем, как интерпретатор воспринимает наш код.
Вот, например, код, содержащий ошибку. Он ошибочно присваивает переменной status строку "equal":
var x = 11;
isTen(x);
function isTen(val) {
if (val = 10) {
status = "equal";
}
}
Чтобы выяснить, что неверно в коде, сравним предполагаемое действие кода с тем, что он делает в действительности, двигаясь вперед по шагам:
// Переменная x должна быть равной 11
var x = 11;
// Посмотрим, происходит ли это в действительности
trace(x); // Выводит: 11
// Здесь должна быть вызвана функция isTen( )
isTen(x);
// Теперь обратимся к нашей функции
function isTen(val) {
// Проверим, действительно ли функция вызывается
trace("Функция isTen вызвана"); // Выводит: "Функция isTen вызвана"
// Проверим, правильно ли передан параметр
trace("Параметр val равен " + val); // Выводит: "Параметр val равен 11"
Остановимся на мгновение. Обратите внимание, что пройден почти весь код, и пока что все работает так, как и предполагалось. Переменная задана правильно, функция isTen( ) вызвана и получила правильный параметр.
СОВЕТ
Многие ошибки происходят потому, что код, который, как нам кажется, выполнялся, вообще не был достигнут! С помощью предложений trace( ) можно убедиться, что вход в некоторый участок кода был осуществлен.
Методом исключения выясняется, что проблема кода заключается либо в условном предложении if(val = 10), либо в присвоении текстовому полю status = "equal". Следующим проверяем условное предложение, выводя с помощью trace( ) значение условного выражения (предполагается true или false):
trace(val = 10);
Эврика! В окне Output выводится 10, а не true или false, как ожидалось.
При ближайшем рассмотрении выясняется, что условное выражение является присваиванием, а не сравнением! Пропущен знак равенства в операторе проверки равенства. Выражение if(val = 10) на самом деле должно иметь вид if(val == 10).
Очевидно, не все ошибки столь просты, как это условное предложение (которое является весьма распространенной ошибкой), но использованный подход применим в большинстве случаев поиска ошибки: выполнить ряд функций trace( ), чтобы создать текущий пошаговый отчет о фактическом выполнении кода и использовать отладчик, как советует Macromedia.
^
В таблице 19-1 перечислены некоторые часто встречающиеся причины программных ошибок в ActionScript.
Таблица 19-1. Ошибки, встречающиеся в ActionScript
Ошибка | Описание |
Неверное расположение кода | Всякий код должен быть прикреплен к мувиклипу, кадру или кнопке. Следите, чтобы код был прикреплен туда, куда нужно, по заголовку панели Actions: если код прикреплен к кадру, заголовок панели будет Frame Actions; если код прикреплен к мувиклипу или кнопке, заголовок будет Object Actions. Если нужно расположить код в каком либо конкретном кадре, в начале написания кода следите за тем, чтобы этот кадр был выделен на шкале времени (Timeline) и чтобы этот кадр был ключевым. Если нужно, чтобы код был прикреплен к мувиклипу или кнопке, обеспечьте выделение соответствующего объекта на сцене перед началом ввода кода. Чтобы точно проследить, куда прикрепился, воспользуйтесь панелью Movie Explorer (Window ![]() |
Отсутствие обработчика события | Код, прикрепленный к мувиклипам и кнопкам, обязан находится в обработчике события. Для мувиклипов используйте: onClipEvent (событие) { // предложения } Для кнопок: on (событие) { // предложения } где событие является именем обрабатываемого события. Ошибка "Statement must appear within on handler" указывает на отсутствие обработчика события. См. главу 10 "События и обработчики событий". |
Неправильная ссылка на мувиклип | Ссылка на мувиклип, который не существует или имеет неверный формат. Проверьте, всем ли экземплярам даны имена и соответствуют ли эти имена указанным ссылкам. См. раздел 13.5.3 "Ссылки на вложенные мувиклипы" в главе 13 "Мувиклипы". |
Непредусмотренное преобразование типа данных | Неожиданный результат преобразования данных. Например, 3 + "4" дает строку "34", а не число 7. Аналогично строка "true" преобразуется в булево значение false! См. правила преобразования типов данных в главе 3 "Данные и типы данных". Проверяйте типы данных с помощью оператора typeof. |
Отсутствие точки с запятой | Предложение преждевременно завершено из-за отсутствия точки с запятой. О том, как правильно использовать точку с запятой, читайте в главе 14 "Лексическая структура". |
Неверный символ кавычки | Строка содержит не преобразованный в escape-последовательность символ, конфликтующий со строковым литералом. См. раздел 4.5.2 "Строковые литералы" в главе 4 "Элементарные типы данных". |
Неверное использование данных текстового поля | Текстовое поле используется как число или другой тип данных, отличный от строки. Значения, вводимые пользователем в текстовые поля, всегда являются строками (Strings) и должны быть вручную преобразованы для использования в качестве другого типа данных. |
Проблемы области видимости | Ссылка на переменную, свойство или функцию не учитывает область видимости. Например, предложение в обработчике мувиклипа пытается вызвать функцию, областью видимости которой является шкала времени родителя этого мувиклипа. См. раздел 10.7 "Область видимости обработчика событий" в главе 10 "События и обработчики событий", раздел 2.5 "Область видимости переменных" в главе 2 "Переменные" и раздел 9.6 "Доступность и срок жизни функций" в главе 9 "Функции". |
Смешение глобальной функции с методом | Имена некоторых глобальных функций совпадают с именами методов мувиклипов. Иногда это служит источником проблем. См. раздел 13.8.3.1 "Проблемы, связанные с перекрытием методов и глобальных функций" в главе 13 "Мувиклипы". |
Не загружено содержимое | Ссылка на мувиклип, свойство, функцию или переменную не может быть разрешена, поскольку содержимое еще не загружено. Убедитесь в завершении загрузки с помощью свойства MovieClip._framesloaded, как показано в части III "Справочник по языку". |
Неверное использование заглавных букв | В некоторых ключевых словах ActionScript учитывает регистр букв. Если ошибочно записать onClipEvent как onclipevent, ActionScript решит, что вызывается пользовательская функция onclipevent, а не используется ключевое слово встроенного обработчика события onClipEvent. В результате будет сообщено об ошибке при обнаружении { в начале блока предложений onClipEvent (интерпретатор ищет точку с запятой, обозначающую конец того, что он считает вызовом функции onclipevent). См. раздел 14.6 "Чувствительность к регистру" в главе 14 "Лексическая структура". |
В некоторых случаях способ исправления выявленной ошибки очевиден. Например, если обнаружена ошибка, вызванная отсутствием кавычки в строке, она исправляется путем добавления пропущенной кавычки.
В сложных программах исправление ошибок может представлять серьезную проблему. Если исправление ошибки оказывается затруднительным делом, руководствуйтесь следующими советами:
Не бойтесь переписывать код заново. Во многих случаях лучшим способом исправить очень сложный код будет повторное проектирование системы и написание кода сначала. Повторное написание программы почти всегда происходит более быстро и гладко, чем ее первоначальное создание. С этим согласно большинство экспертов (например, в Quake III ядро Quake II было полностью переписано). При этом новый код все равно нуждается в отладке. Не выбрасывайте вполне пригодный код, когда срок завершения работы уже близок. Оставьте то, что хорошо работает, и перепишите только код, вызывающий проблемы.
Выделите проблематичные компоненты в отдельные тестовые Flash-ролики. Работайте над каждой составляющей системы, а затем объединяйте работающие части по одной.
Пусть ваш код посмотрит коллега. Не бойтесь. Любой программист стыдится кода, написанного их годом раньше.
Обратитесь за помощью к одному из ресурсов, приведенных в приложении A "Ресурсы". Например, почтовый список рассылки FlashCoders посвящен исключительно вопросам ActionScript.
Множество добрых советов по технике программирования можно найти в книгах Extreme Programming Explained Кента Бека (Kent Beck) издательства Addison Wesley и Code Complete Стива Макконнелла (Steve McConnell) издательства Microsoft Press.
Скачать файл (21152.1 kb.)