Загрузка...
скачать (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 | ![]() |
01. Все, что нужно знать о программировании в Macromedia Flash.doc
Реклама MarketGid:
Загрузка...
![]() |
|
![]() |
Дальше действовать будет скрипт |
Все, что нужно знать о программировании в Macromedia Flash |
Вы изучали когда-нибудь иностранный язык? Трудно в нашем мире тотальной глобализации найти образованного человека, который бы ответил на этот вопрос отрицательно. Все мы с большим или меньшим успехом пытались заговорить на английском или на немецком, представляя, какие замечательные возможности у нас появятся. Действительно, как чудесно, должно быть, смотреть фильмы, не ругая качество перевода, или читать книги на языке оригинала! А общение с иностранцем, используя не только язык жестов и лексикон грудных детей, разве не стоит того, чтобы попотеть годик-другой над книжками? Но что делать в том случае, если вы хотите поговорить с Flash, какой для этого нужно изучить язык?
Macromedia Flash не понимает английского или тем более русского. И изучать их не собирается — у нее есть свой язык: ActionScript. Его название буквально означает «план действий». И на самом деле предназначен он для того, чтобы статичные элементы на мониторе вдруг ожили, задвигались, заискрились и зашумели, складываясь в задуманную игру, мультфильм, эффект или сайт. В настоящей статье мы поговорим о языке программирования в среде Flash. Чтобы понимать, о чем идет речь, вы должны владеть этой программой хотя бы на начальном уровне.
![]() ![]() ^ ![]() |
^
Несколько скриптовых команд имелось уже в FutureSplash Animator — программе, которая легла в основу Flash. Разработавшую ее фирму Future Animation купила в 1995 году Macromedia, решившая сделать ставку на векторную анимацию. И на то были веские причины. К середине 90-х Интернет все менее и менее походил на то пристанище физиков и студентов-программистов, которым он являлся в самом начале своего существования. Популярность Сети стремительно росла — росли и требования, предъявлявшиеся к виду сайта. И если раньше страница текста с несколькими хаотически распределенными по ней картинками вполне удовлетворяла зашедшего в Сеть в поисках нужной информации специалиста, то обыватели, использовавшие Интернет для развлечения, хотели большего. Им нужно было шоу, к которому они так привыкли благодаря телевидению. Однако организовать его оказалось не так уж легко — у разработчиков просто не имелось средств для материализации замыслов заказчиков: анимированные GIF-рисунки и Java (требующий многочасовой работы программистов высокого класса) – вот и все, что находилось в их распоряжении. Работа Web-дизайнера, несмотря на высокие доходы, считалась подобной аду. Мало того что сконструировать впечатляющий сайт, имея в распоряжении один HTML, не так легко, еще и не было гарантии, что Web-мастер и посетитель интернет-ресурса увидят на своих мониторах одно и то же… Проблемы браузерной и кроссплатформенной совместимости, трудности со шрифтами и многочисленными кодировками привели в результате к тому, что создание сайта превратилось в целую науку, освоить которую удавалось далеко не всем. Разработчики мечтали о простом и надежном инструменте для изготовления интерфейсов, который позволил бы не заботиться о том, что именно, Navigator или Explorer, PC или Macintosh, использует гость сайта. Целью дать им такой инструмент задалась компания Macromedia. Переименовав FutureSplash во Flash (англ. «вспышка»), она выпустила на рынок продукт, которому предстояло стать ее самым прибыльным проектом на долгие коды.
Первые скриптовые команды Flash предназначались прежде всего для управления временной диаграммой. Благодаря им можно было динамически переводить проигрывающую головку на нужный кадр или сцену, начинать прокрутку фильма или останавливать ее.
![]() ![]() Скриптовые команды Flash 1. В 1996 году их было всего 8. Современный ActionScript насчитывает около 500 лексем ![]() |
Для того чтобы стало возможным использование Flash-роликов в качестве баннеров, введена функция getURL(), позволявшая открывать окна с нужными страницами. Минимальный уровень интерактивности обеспечивался благодаря наличию специального обработчика событий. Он позволял реагировать на такие действия со стороны пользователя, как щелчок мышью или нажатие определенной клавиши.
Во Flash 3 появились дополнительные возможности для создания кнопок. Тогда можно было программировать реакцию их нажатие и отпускание, на появление курсора в их активной зоне. Также добавилась функция loadMovie(), благодаря которой одновременно проигрывается несколько swf-фильмов, и функция fscommand(), позволявшая взаимодействовать с окружением плеера.
Во Flash 4 возможности программирования возросли многократно. Наиболее важным прорывом явилось появление инструментов, позволявших динамически менять положение клипов, их размер, прозрачность, цвет и некоторые другие свойства. Благодаря этому при помощи Flash стала реальной разработка не только анимации, но и самых настоящих игр. Появились такие непременные атрибуты любого языка программирования, как переменные, математические функции, функции для обработки строк, логические операторы и операторы сравнения. Подпрограммы могли быть имитированы вызовом кода, расположенного на определенном кадре, без перемещения проигрывающей головки на этот кадр. Массивы эмулировались при помощи группы переменных, имеющих общий корень и суффикс, содержащий порядковый номер. Считается, что именно во Flash 4 появился полноценный скриптовый язык, названный ActionScript.
В 2000 году, при разработке Flash 5, компания Macromedia приняла решение поднять достаточно нелепый и слабый язык сценариев Flash 4 на более достойный уровень. В то время в мире Интернет был весьма моден JavaScript, предназначенный для введения на страницы различного рода динамичных и интерактивных элементов. Поэтому компания Macromedia решила сделать ActionScript предельно похожим на JavaScript. Это значительно облегчило бы переход на ActionScript профессиональных Web-программистов, что способствовало бы более быстрому его распространению. Следуя поставленной цели, разработчики Macromedia использовали стандарт ECMAScript — предельно обобщенный скриптовый язык, созданный Европейской ассоциацией производителей компьютеров (ECMA), который в свое время лег в основу и JavaScript.
ActionScript пятой версии Flash был на голову выше своего предшественника. Он представлял собой тонкий и сложный объектно-ориентированный язык с огромным числом новых возможностей. Именно с этой версии программы работа во Flash превратилась в хобби или, порой, в любимую профессию сотен тысяч людей по всему миру. Так как обзору ActionScript мы посвятим значительное внимание ниже, то сейчас описывать его мы не будем.
Во Flash MX ActionScript не претерпел серьезных изменений. Из наиболее значительных нововведений стоит отметить появление новой модели событий, создание концепции компонентов, введение методов программного рисования.
В начале 2004 года появится 7-я версия Flash. Пока сложно предположить, даже как она будет называться. Одно ясно: она будет, следуя сложившейся традиции, намного лучше предыдущей. Станет сильнее и ActionScript. И это, без сомнений, отразится на том, что технология Flash обретет еще большую популярность. Будем ждать…
^
Ответить на этот вопрос не так легко. Проще сказать, что вы сможете сделать, им не владея. Пожалуй, при этом вы будете способны создавать мультфильмы — и больше ничего. Конечно, Flash как анимационный пакет — это самое важное ее проявление. Но и остальные возможности программы, обеспечиваемые ActionScript, не менее интересны.
Чаще всего рядовому пользователю Интернета Flash-фильмы встречаются в виде баннеров. В простейшем случае это просто анимашки, дополненные тремя строчками кода ActionScript. Но иногда попадаются крайне интересные интерактивные баннеры, реализация которых при помощи тех же анимированных gif-ов была бы невозможна. Например, авторы этой статьи видели баннер, при наведении на который курсора картинка охватывалась пламенем. Чтобы реализовать подобного рода эффекты, без программирования не обойтись.
Используя ActionScript, можно создавать целые сайты. Однако это, ввиду нарушения полными Flash-страницами многих важных принципов usability и сложностью разработки по сравнению с более привычными технологиями, практикуется не очень часто. В основном Flash применяется для создания отдельных элементов интерфейса Web-страниц. Анимированные меню и заставки можно увидеть на очень многих сайтах. Реже при помощи ActionScript реализуются галереи, опросы и формы. Вообще же, ресурс, созданный с использованием Flash, обычно выглядит куда более впечатляюще, чем его «коллега», разработанный только средствами HTML и «традиционной» графики. Именно поэтому создание Flash-сайтов оплачивается лучше, чем обычных.
В нашей стране области применения Flash несколько отличаются от того, как эта программа используется на Западе. Так, если в США Flash — это прежде всего инструмент, применяемый при разработке сайтов, то у нас такое ее использование далеко не первостепенно. По причине тотального распространения пиратства, в России Flash — это игрушка. Тысячи и тысячи любителей используют ее для создания собственных мультиков, эффектов и игр. При программировании последних ActionScript просто незаменим.
![]() ![]() ^ (www.spiritonin.com/capoeirafighter) было затрачено порядка 2–3 тысяч часов рабочего времени. Сама игрушка представляет собой великолепный аналог Mortal Combat ![]() |
Существуют целые сайты, посвященные Flash-играм. Обычно игры эти достаточно незатейливы, хотя порой среди них попадаются настоящие шедевры. Вопреки распространенному мнению, создать при помощи ActionScript игру совсем несложно. По крайней мере, это на порядок проще, чем с использованием любого универсального языка программирования.
Интересная область использования ActionScript — программная анимация. Во многих случаях движение объектов происходит по законам, которые могут быть описаны при помощи математики. При этом задать его гораздо проще, используя программирование, нежели стандартные средства анимации. Например, чтобы создать мультипликацию двигающегося скачками мяча при помощи ActionScript, человеку с математическими способностями чуть выше среднего понадобится всего пара минут. Работа же над аналогичной анимацией без применения программирования может занять до получаса.
Незаменим ActionScript при создании анимаций, в основе которых должна лежать случайность. Типичным примером является летящий снег.
ActionScript активно используется при разработке презентаций, интерфейсов компакт-дисков, заставок Windows и даже математических моделей. Да мало ли где может применяться такая универсальная система, как Flash, являющая собой уникальный симбиоз графики, анимации и программирования! Пожалуй, трудно найти утилиту, которая бы предоставляла большие возможности для творчества, чем она. К примеру, некоторое время назад появился софтверный эквалайзер, написанный на ActionScript.
^
Как вы уже знаете, в основе ActionScript лежит язык ECMAScript, описанный в стандарте ECMA-262. Его история берет свое начало со второго поколения браузера Navigator компании Netscape, в котором появился скриптовый язык — прародитель современного JavaScript. Новая технология оказалась весьма эффективной, поэтому вскоре она была внедрена и в браузер компании Microsoft Internet Explorer версии 3.0. Будучи яростными конкурентами, Microsoft и Netscape спешили дополнить свои версии языка все новыми и новыми возможностями, что в конечном итоге привело к появлению проблемы совместимости браузеров. Решить их можно было, стандартизировав JavaScript. Работа над выработкой стандарта для Web-скриптов началась в 1996 году под эгидой Европейской ассоциации производителей компьютеров (ECMA), аббревиатура которой вошла в его название. Первое его издание утверждено Генеральной ассамблеей ECMA в июне 1997 года.
В настоящий момент действует уже третья версия стандарта ECMA-262 (цифра в его названии взята из официального номера международного стандарта — ISO/IEC 16262). Она была принята в декабре 1999 года. Работа над ECMAScript продолжается, так что вполне можно ожидать появления его новых версий уже в ближайшее время.
Что представляет собой ECMAScript? Это объектно-ориентированный язык, рассчитанный на то, чтобы служить основой для Web-скриптов.
![]() ^ (www.kartoo.com) отображает результаты поиска в виде оригинального интерактивного дерева — в этом ей помогает ActionScript ![]() |
Пытаться изучить ActionScript, читая спецификацию ECMAScript, вряд ли стоит. Отсюда можно почерпнуть сведения только относительно «фундамента» языка, понимание которого хотя и важно для практики, но далеко не первостепенно. Тем более ActionScript имеет достаточно много несоответствий с ECMA-262. Это связано как с тем, что разработчикам приходится экономить в размере проигрывателя и обеспечивать обратную совместимость, так и с тем, что ActionScript попросту не относится к профилю ECMAScript — скриптовым языкам браузеров. Однако когда вы изучите ActionScript хотя бы на среднем уровне, вам будет достаточно интересно ознакомиться с ECMA-262, чтобы понять глубинную сущность хорошо известных понятий.
До определенной степени ActionScript совместим с JavaScript. Так, если созданная вами программа содержит только элементы, описание которых имеется в ECMA-262, то она одинаково успешно может быть выполнена как во Flash-плеере, так и в браузере.
Скачать спецификацию ECMAScript в pdf-формате вы можете по адресу: www.ecma-international.org/publications/standards/ECMA-262.htm.
^
Под скриптовым языком в общем случае понимается язык программирования, позволяющий динамически использовать инструменты (настраивать их или автоматизировать работу с ними) какой-то существующей системы. Зачастую скрипты выступают аналогом пользовательского интерфейса, дублируя возможности манипулирования программой «вручную». Отчасти это относится и к ActionScript: например, качество отображения фильма можно задать как используя команды контекстного меню плейера, так и обратившись к специальному свойству — quality. Впрочем, скриптовые команды могут и не иметь отображения в меню и на панелях инструментов программы. В случае ActionScript таким командам соответствует подавляющее большинство структур языка.
Одна из главных особенностей скриптового языка — при его помощи вы можете указать системе, что нужно сделать, не объясняя, как. Вы управляете готовыми объектами, воспринимая их как черные ящики. Вы знаете, за что каждый из них отвечает, но их реализация, то, как они работают, от вас скрыта. И в этом нет ничего плохого: вы же можете использовать компьютер, совершенно не разбираясь в транзисторах. Разработка игры при помощи одного из универсальных языков программирования потребовала бы от вас колоссальных познаний в области алгоритмов, технологий и аппаратных средств. Для ее реализации на Flash вам понадобится уметь рисовать и знать с десяток методов ActionScript. Однако это не означает, что внутренняя структура второй игры окажется проще первой. Нет, скорее, даже наоборот. Просто вся черновая работа по низкоуровневому кодированию была выполнена программистами Macromedia, которые изготовили для вас простые и удобные инструменты. Их использование не подразумевает особой подготовки, поэтому ActionScript доступен и для непрофессионалов. Условие доступности лежит в основе и того факта, что ActionScript, по сравнению с С или Java, язык достаточно нестрогий.
Любой скриптовый язык понимается только той системой, для которой он был создан. ActionScript является «родным» языком скорее даже не для Flash, как можно сразу подумать, а для Flash Player — скромной программы, позволяющей просматривать swf-фильмы. Сам же Flash — только среда разработки. Это подобно тому, как код JavaScript можно написать и в «Блокноте», хотя его «родной» программой является браузер. Создать swf-анимацию можно во многих приложениях (например, Adobe Illustrator), так как swf-формат является открытым еще с 1998 года. Однако просмотреть ее удастся, только установив Flash-плейер (Macromedia не желает сделать его код общедоступным из соображений сохранения единого стандарта для swf-файлов).
Каждой версии Flash соответствует свой плейер. Невозможно проиграть фильм, созданный в формате Flash MX, при помощи Flash Player 5. Наоборот, плейер шестого издания программы может просматривать swf-файлы всех версий. Обратная совместимость существует и в самом ActionScript: программы Flash 4 будут отлично работать и при интерпретации их в плейере Flash MX. В тексте сценариев вы можете использовать наряду с действующими элементами языка и устаревшие (deprecated) «слова» (так, многие флэшеры «старой закалки» предпочитают применять в качестве логического «И» оператор and (Flash 4, устарел во Flash 5), а не &&). Однако такую практику нельзя назвать хорошей, так как устаревшие элементы языка обычно менее эффективны, чем их более новые аналоги (иначе зачем их понадобилось бы заменять?).
^
Языки высокого уровня не могут быть поняты машиной, поэтому программы, написанные на них, не выполняются компьютером непосредственно. Перед исполнением их необходимо перевести в понятную для машины форму, для чего производится их трансляция либо на язык ассемблера, либо сразу в машинный код. В зависимости от того, когда это делается, языки программирования делятся на интерпретируемые и компилируемые. Упрощая, можно сказать, что в последнем случае перевод программы в понятную для машины форму осуществляется сразу же после ее создания. Программа же на интерпретируемом языке транслируется в машинные коды лишь при ее выполнении. Делается это следующим образом. Каждой команде интерпретируемого языка в коде интерпретатора соответствует подпрограмма, созданная с использованием поддерживаемых аппаратной частью компьютера средств. Когда эта команда встречается в коде, связанная с ней подпрограмма запускается, и необходимые действия выполняются. Так как особенности реализации интерпретируемых языков скрыты, кажется, что имеющиеся в них команды проделываются напрямую компьютером. Поэтому соответствующие интерпретаторы называют виртуальными компьютерами (или, чаще, виртуальными машинами). Не будет ошибкой именовать Flash-плеер виртуальной машиной ActionScript.
Обычно универсальные языки программирования являются компилируемыми, а скриптовые языки — интерпретируемыми (хотя есть и исключения, например, Java).
ActionScript является, естественно, языком интерпретируемым. Однако его интерпретатор слишком ограничен необходимостью экономить в «весе» проигрывателя и производительностью компьютеров, чтобы он оказался способен понимать код в том виде, в котором вы его создаете.
![]() ^ www.rocketsnail.com/chat/penguin ![]() |
Ничего общего с реальным машинным ассемблером Flash-ассемблер не имеет. Он является просто удобной для восприятия плейером формой ActionScript.
Особой роли на практике байт-коды не играют. Однако иметь представление о Flash-ассемблере нужно, так как, обратившись к транслированной в него программе, можно много узнать о внутренней структуре ActionScript. Например, выяснить, имеются ли какие-то различия при провозглашении переменной с использованием слова «var» и без него.
Получить текст ActionScript-программы на Flash-ассемблере можно, обратившись к специальным программам-декомпиляторам, например, Action Script Viewer от компании Manitu Group. Они позволяют восстанавливать из swf-фильмов некоторое подобие исходных fla-файлов. Используя их, есть возможность изучить код понравившегося эффекта, получить доступ к графике и звуку.
^
Синтаксис
Синтаксис ActionScript из универсальных языков программирования наиболее близок к Java. Однако он будет вам понятен, если вы владеете и любым другим C-подобным языком. При разработке ActionScript главной целью ставилась простота, столь необходимая для любого скриптового языка. Именно поэтому многие правила его синтаксиса чрезвычайно мягки, по сравнению с универсальными языками. Например, вы не должны явно объявлять тип переменной, и совсем не обязательно использовать при ее создании ключевое слово «var». Вызов функции может предшествовать ее определению, а для имен идентификаторов нет чувствительности к регистру. Подобных примеров можно привести еще немало.
Объект
Основным понятием ActionScript является объект. Объект — это неупорядоченное множество свойств. Свойство представляет собой именованный контейнер, который может хранить величину любого типа — число, строку, объект или функцию. Если значением свойства является функция, то оно называется «методом». Обычно методы служат для изменения свойств объекта-хозяина. Любому свойству присущи атрибуты, определяющие его отношение к переопределению, удалению и перечислению циклом for-in (данный цикл последовательно выводит имена всех свойств объекта).
Получить доступ к некоторому свойству можно, используя оператор точки. Например:
trace(_root._visible); // выводит «true» в том случае, если объект _root видимый
По особенностям реализации объекты ActionScript являются ассоциативными массивами, или хэшами.
ActionScript – это объектно-ориентированный язык. Носителем большинства его возможностей являются встроенные объекты. Более того, ActionScript-программу вполне можно считать множеством взаимодействующих объектов.
Встроенные объекты ActionScript обычно служат для централизации родственных возможностей скриптового языка. Например, методы объекта String хранят обрабатывающие строки функции, объект MovieClip отвечает за управление клипами, объект XML дает возможность работать с источниками данных в формате XML, и так далее.
Объект, который может порождать объекты, называется конструктором. Все конструкторы — это объекты, но не все объекты — конструкторы. Об объекте, который был создан при помощи конструктора X, говорят, что он принадлежит к классу X. Полноценных классов, подобных классам C++ или Java, в ActionScript нет.
Чтобы создать новый объект при помощи конструктора, нужно задействовать его вместе с оператором new:
arr=new Array(); // Так создается новый объект класса Array
Типы данных
Всего в ActionScript имеется семь типов данных. Пять из них являются элементарными (т.е. принадлежащие к ним объекты данных рассматриваются интерпретатором как единое целое), а два — структурированными. К элементарным типам данных относятся String (строки), Number (Числа), Boolean (Логические величины), Undefined (неопределенность), Null (пустое значение). Структурированными типами являются Object (Объекты) и MovieClip (Клипы).
Клипы — это основа Flash, самый важный и мощный элемент swf-фильма. Клипы и средства управления ими появились задолго до ActionScript, и код их реализации не так сильно изменился в последних версиях программы. С большой степенью достоверности можно утверждать, что во внутреннем представлении Flash-плей-ера между объектами и клипами не так много общего, хотя внешне они ведут себя достаточно схоже.
![]() ![]() ^ www.x-pressive.com, реализованный на Macromedia Flash и ActionScript, трудно отличить от того, к которому мы привыкли, работая в Windows ![]() |
В ActionScript не имеется массивов как отдельного типа данных. Однако они могут быть эмулированы при помощи объектов класса Array. Методы этого класса облегчают работу со свойствами с именами в виде индексов.
Операторы
Набор операторов ActionScript достаточно стандартен. В нем имеются арифметические операторы, операторы присваивания, операторы сравнения, логические операторы, побитовые операторы, а также операторы, выполняющие более специфичные функции, такие, как определение типа объекта данных или создание нового объекта.
^
К управляющим структурам в ActionScript относятся условные предложения (if-else и switch) и циклы (while, do-while, for, for-in). Если не считать специфичного цикла for-in, набор управляющих структур абсолютно стандартен и полностью повторяет аналогичный набор Java.
Переменные
Переменная — это именованный контейнер для объекта данных. В ActionScript они создаются по следующей схеме: var name = value, где var — ключевое слово, объявляющее переменную (не является обязательным), name — ее имя, = — оператор присваивания, value — присваиваемое значение. В переменной может быть сохранен объект данных любого типа.
В принципе между понятиями «свойство» и «переменная» нет заметной разницы. И первое, и второе обозначают именованный контейнер для хранения данных, и на уровне реализации языка трудно найти различие между ними. Свойство является структурным элементом объекта, а переменная существует сама по себе — вот и вся разница.
Функции
Если использовать строгую терминологию, то функции являются, прежде всего, подпрограммами. Подпрограмма — это абстрактная операция, задаваемая программистом. Сложное определение? Не будет ошибкой считать функции просто участком кода, который можно вызвать в любое время и любое число раз, причем не повлияв на остальные объекты в сценарии. Разработка средств для определения и вызова подпрограмм является одной из центральных задач, возможно, самой главной задачей при разработке большинства языков. Чрезвычайно важны подпрограммы и в ActionScript. Функции — это кирпичики, из которых складывается практически любая программа. Написать неэлементарный алгоритм, не используя функции, так же сложно, как построить дворец из сырой глины. Функции позволяют писать эффективный, компактный и мобильный код, они же лежат в основе создания многих структур языка.
Задаются функции при помощи ключевого слова function. Пример:
function cot(arg) {
// Функция, вычисляющая котангенс
return Math.cos(arg)/Math.sin(arg);
}
trace(cot(0));
// Выводит: Infinity (бесконечность)
В определенных ситуациях функции могут вести себя как объекты. Вообще же это на редкость многоликие структуры языка.
Наследование
Ключевой идеей объектно-ориентированного программирования является наследование. Так, если конструктору класса присущи некоторые методы и свойства, то они будут характерны и для всех его экземпляров. При этом каждый экземпляр может обладать индивидуальными, присущими только ему атрибутами. Класс порождает другой класс, который будет наследовать все его методы и свойства.
Наследуемые свойства и методы в ActionScript хранятся в особом свойстве конструктора класса, называемом прототипом (prototype). Если вы хотите, чтобы, например, некоторый метод move() был присущ всем объектам класса MovieClip, то вы не можете сохранить его непосредственно в конструкторе класса:
^
Метод должен быть сохранен в прототипе конструктора:
MovieClip.prototype.move=move; // Верно. Теперь метод move() стал «родным» для всех клипов
При обращении к свойству объекта интерпретатор в первую очередь проверяет, имеется ли компонент с таким именем у самого объекта. Если нужного свойства не обнаруживается, просматривается прототип конструктора класса, к которому относится объект. Если и там нет необходимого элемента, то изучается прототип прототипа, и так до тех пор, пока вся присущая объекту цепочка наследования не будет пройдена. Таким образом, объекту доступны методы и свойства, сохраненные или в нем, или в присущей ему цепочке прототипов.
![]() ![]() Типичная схема наследования в ActionScript. Собственные свойства объектов класса инициализируются при выполнении кода в блоке конструктора. Наследуемые свойства размещаются в прототипах конструктора класса и надклассов. Обратите внимание, что во всех случаях завершает цепочку наследования ![]() |
Сохраняя свойства в прототипе, вы гарантируете, что связанные с ними объекты данных будут существовать в единственном экземпляре, что немаловажно, если в фильме их станет использовать большое количество объектов.
Для того чтобы сделать класс A надклассом класса B, в прототипе конструктора B должен быть сохранен объект класса A:
^
Недостатки ActionScript
Странностей и нелепостей в ActionScript имеется немало. И первопричиной большинства из них является не слишком удачный выбор стандарта. Действительно, ECMA-262 предназначен для разработки Web-скриптов. Но AсtionScript таковым не является. Из-за этого многое в языке программирования Flash получилось излишне запутанным и абсолютно не интуитивным. Имеются в нем и совершенно бесполезные элементы вроде оператора void, введенные только для соответствия стандарту. Ситуацию усугубляет то, что код размещается в клипах. Для примера опишем трудности, которые возникают при попытке обозначить различия между переменными кода клипа и его свойствами.
Расположение кода на кадрах клипов делает сценарии фильмов Flash чрезвычайно гибкими. Однако это вносит и значительную путаницу во многие вопросы языка. Например, нужно ли использовать var, если переменная клипа создается удаленно? Ответ: нет, так как при этом она рассматривается как свойство. Нужно ли ключевое слово var, если объявляется глобальная переменная? Ответ: нет, так как она есть просто свойство объекта Global. Вообще, оператор точки и var несовместимы: такое сочетание вызывает ошибку.
var _root.myVar=0; // Ошибка: переменная не может быть свойством
В ECMA-262 с каждым исполнимым кодом связана особая служебная структура, называемая объектом переменных (variable object). Свойства этого объекта имеют такие же имена, как и определенные в коде переменные и функции. Значениями же этих свойств являются объекты данных, с которыми, при помощи операции присваивания, связываются соответствующие переменные. При необходимости получить доступ к некоторой переменной считывается значение созданного на основании ее определения свойства объекта переменных. Понятие «объекта переменных» вводится для того, чтобы стала возможной инкапсуляция исполнимого кода и реализация концепции цепочек областей видимости.
В ActionScript роль объекта переменных основного кода выполняет клип, на кадре которого код расположен. С одной стороны, это хорошо, так как способствует упрощению языка. Так, чтобы обратиться к какому-то свойству или методу клипа из кода, расположенного на нем, совсем не обязательно использовать имя клипа. Достаточно набрать просто имя свойства:
trace(_x); // Выводит: 0
trace(_root._x) // Выводит: 0
С другой стороны, создание на основании определения переменной свойства клипа означает, что различия между понятиями «переменная» и «свойство» нивелируются. Интересные особенности возникают при обращении к свойству клипа из расположенного на нем кода. Так, если мы попытаемся получить к нему доступ, не используя имя клипа и оператор точки, а набрав только его имя, то на его наличие будет просмотрена связанная с исполнимым кодом цепочка областей видимости. Это означает, что в данном случае идентификатор рассматривается как имя переменной. Если же к свойству мы пытаемся обратиться, используя имя клипа и оператор точки, то просматривается связанная с клипом цепочка прототипов (т.е. идентификатор интерпретируется как свойство).
Если бы для кода, расположенного на кадре клипа, создавался специальный объект переменных, а не использовался с этой целью сам клип, то понятия «переменная» и «свойство» было бы легко различить. Будем надеяться, что в следующих версиях Flash ситуация в этом отношении изменится.
Во Flash код ActionScript может быть «повешен» на любой кадр, клип или кнопку. Это имеет свои отрицательные стороны. Очень сложно разобраться в большом проекте, найти в нем ошибку, если управляющий им скрипт разбит на множество хаотически распределенных фрагментов. Увы, но неудачная концепция событий Flash 5 способствовала закреплению в рядах флэшеров привычки помещать каждый кусок кода на тот объект, за управление которым он отвечает. Также зачастую неоправданно сценарий распределяется по нескольким кадрам. Конечно, разобраться в собственном проекте в день его создания не составит труда даже при самом нерациональном распределении кода. Однако если вы вернетесь к нему через полгода, то понять, как же все эти разрозненные фрагменты взаимодействуют, будет не так просто. В чужом же фильме может оказаться огромной проблемой даже найти ActionScript-сценарии — для этого придется просматривать все временные шкалы, клипы и кнопки. Конечно, можно воспользоваться и специальным инструментом Movie Explorer (Window/ Movie Explorer), который покажет в виде дерева, где именно располагается код. Но найти скрипт еще полбеды. Самое трудное — сложить у себя в голове все разрозненные фрагменты в единое целое, чтобы понять, какие идеи лежат в основе работы фильма. В случае достаточно объемных проектов это может оказаться не под силу даже многим профессионалам.
![]() ^ www.vmstudio.com — Русскоязычная версия официальной документации по Macromedia Flash MX. Также можно поучаствовать в конференции ruFlash — одной из самых известных почтовых рассылок по Flash. www.flasher.ru «Международный клуб флэшеров» предлагает присоединиться к обширному форуму со всевозможными тематическими обсуждениями вопросов, связанных с Flash и ActionScript. Здесь вы найдёте огромную базу полезных ссылок на Flash-ресурсы, примеры дизайна, исходники программ, игр, эффектов, анимации и утилит. zona5.al.ru Сайт «Уроки Macromedia Flash» — содержит онлайновую версию одного из учебников по Macromedia Flash пятой версии. Кроме того, есть несколько занятий по ActionScript, созданию игр, анимации, звука, 3D-эффектов во Flash. www.flash-ripper.com «Флэш-Потрошитель» собрал изумительный архив статей, документации, ссылок на примеры профессионального использования Flash. Один из наиболее часто обновляющихся сайтов в своей категории. www.bit-101.com Раздел Laboratory проекта «Эксперименты с ActionScript» коллекционирует интересные эффекты, реализованные исключительно на Flash. Почти каждый день появляется новый исходник. Рекомендовано их вдумчивое изучение с целью понимания, как это работает. www.macromedia.com Конечно же, не следует забывать и об официальном сайте Macromedia — компании-разработчика Flash. Особую зависть вызывают те статьи, в которых рассматриваются буквально все аспекты работы во Flash. Служба технической поддержки продуктов Macromedia может быть использована лишь в том случае, если вы являетесь зарегистрированным пользователем, то есть легально приобрели ту же Macromedia Flash MX. Несмотря на это, вы имеете возможность задавать свои вопросы абсолютно свободно на форуме поддержки Flash. flashguru.co.uk У всех активно интересующихся тонкостями и глубинами технологий Macromedia вызовет живейший интерес проект «База знаний Flash MX». Вы прочитаете множество статей, посвящённых недокументированным функциям Flash. Кстати, многие материалы сайта переведены на русский язык и размещены на www.flash-ripper.com. www.flashkit.com Англоязычный ресурс для Flash-разработчиков порадует обилием исходников программ и практическими уроками, а также отличным форумом. Имеет недавно открывшееся русское зеркало по адресу www.flashteacher.ru. www.actionscript.org Сайт собрал неплохую подборку документации, разбитой на три категории: для начинающих, опытных пользователей и экспертов в Macromedia Flash. Здесь же коллекция примеров использования ActionScript для реализации математических функций, звуковых событий, объектов XML, анимации, работы с клавиатурой, датой и временем, массивами и прочим. ![]() |
Важнейшим ограничителем более быстрого совершенствования ActionScript является размер плеера. Увы, но swf-формат не является стандартным, поэтому плеер для его просмотра пользователям приходится устанавливать самостоятельно с сайта Macromedia. Это приходится делать даже сейчас, когда swf-проигрыватель изначально встроен во все браузеры: просто Flash обновляется гораздо чаще, чем они. Следовательно, размер плеера имеет принципиальное значение: никто не захочет скачать 50 Мбайт, даже зная, какие замечательные вещи делаются при помощи Flash сейчас проигрыватель занимает около 400 Кбайт (плейер FutureSplash был чуть менее 100 Кбайт) — совсем немного. Введение же, например, такой полезнейшей и требуемой стандартом ECMAScript возможности, как динамическая трансляция кода (при ее наличии можно было бы, в частности, предельно просто написать программу для построения графиков функций) потребовало бы включения в код плеера всего транслятора ActionScript, что привело бы к увеличению его размеров в несколько раз. По этой же причине в ActionScript не существует множества весьма востребованных на практике возможностей, предусмотренных ECMA-262, например, регулярных выражений и обработчиков ошибочных ситуаций.
Имеются в ActionScript и другие недостатки. Однако они слишком специфичны, чтобы мы их описывали в настоящей статье.
Вывод
Если рассматривать Flash как графический или анимационный пакет, то можно смело утверждать, что программа практически не изменилась в последних трех изданиях. Действительно, нет особой разницы, где рисовать мультфильмы — во Flash MX или же в старушке Flash 4. В этой области детище Macromedia достигло совершенства уже достаточно давно и спокойно почивает на лаврах. Эволюция Flash продолжается практически исключительно в области программирования. За несколько лет ActionScript из примитивного набора команд, поражавшего нелепостью синтаксиса и отсутствием какой-либо четкой структуры, превратился в полноценный язык сценариев, достаточно сложный и весьма тонкий. Флэшер, не знающий ActionScript, подобен наблюдающему айсберг: он не подозревает, что 90% возможностей программы для него недоступны. Но даже осознав тот огромный потенциал для творчества, который открывает язык сценариев Flash, чтобы смело назвать себя ActionScript-кодером, нужно пройти очень долгий путь. Не будут преувеличением следующие цифры: для изучения Flash без ActionScript достаточно недели, а чтобы освоить на достойном уровне программирование, понадобятся месяцы или даже годы упорного труда. Но сумев преодолеть этот путь, вы никогда не пожалеете о потраченном времени и усилиях, ведь ничто больше не будет ограничивать вашей фантазии!
Скачать файл (21152.1 kb.)