Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Курс лекции по дисциплине Современные программные средства - файл 12. Стандарты Actionscript.doc


Загрузка...
Курс лекции по дисциплине Современные программные средства
скачать (21152.1 kb.)

Доступные файлы (590):

Задание.doc21kb.05.02.2002 00:56скачать
Лекция_1.doc49kb.04.02.2004 09:27скачать
ЗАДАНИЕ.DOC37kb.13.02.2007 12:28скачать
Программирование с DAO и ADO.doc426kb.13.02.2007 17:20скачать
CRE_INFO.GID
CRE_INFO.HLP
Helpscr.doc213kb.11.09.1998 08:50скачать
README.TXT1kb.27.09.1998 08:05скачать
задание СПС лаб4.doc24kb.16.03.2005 12:15скачать
Задание.doc23kb.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.gif1kb.21.05.2000 22:16скачать
shortcuts.asp
sounds.asp
ssavers.asp
textfield.asp
trigger.asp
trigger.swf
2 Рисование.fla
5 Работа с текстом.fla
flash4_1_D.doc160kb.01.09.2001 06:27скачать
2 Слои.fla
flash4_2_layers.doc143kb.01.09.2001 06:27скачать
Имитация увеличительного стекла.doc32kb.05.04.2001 07:31скачать
3 Символы и Копии.fla
flash4_3_simbol.doc99kb.01.09.2001 06:29скачать
Skywriting.fla
Skywriting.swf
4 Кнопки.fla
5 Звуки.fla
flash4_5_sound.doc106kb.01.09.2001 06:30скачать
8 Анимация.fla
8 Анимация.swf
flash4_6_animation.doc98kb.01.09.2001 06:31скачать
Основы анимации.aviскачать
Macromedia Flash 5 (Лекция 1).doc217kb.19.11.2002 18:47скачать
test.swf
Вставка Flash.doc30kb.28.04.2004 15:17скачать
Вставка Flash-роликов в HTML.doc73kb.28.04.2004 11:10скачать
Использование SWiSH в HTML.doc80kb.28.04.2004 15:28скачать
Как вставить Flash в HTML.doc28kb.28.04.2004 15:40скачать
Код вставки SWF файла Flash MX.doc24kb.28.04.2004 15:54скачать
Am179.gif31kb.05.04.1998 14:42скачать
ANATOMY3.GIF12kb.20.02.1998 18:25скачать
ANATOMY5.GIF7kb.20.02.1998 18:23скачать
ANATOMY7.GIF10kb.20.02.1998 18:26скачать
anieyes.gif50kb.11.10.1998 03:43скачать
Aniheart.gif5kb.05.04.1998 14:46скачать
BAT.GIF13kb.20.02.1998 08:37скачать
BIRD2.GIF4kb.20.02.1998 08:23скачать
BULL1.GIF44kb.20.02.1998 08:25скачать
BULL.GIF15kb.20.02.1998 08:23скачать
BUTTE~56.GIF34kb.20.02.1998 08:18скачать
BUTTE~58.GIF51kb.22.02.1998 02:44скачать
CAT10.GIF25kb.20.02.1998 08:06скачать
CAT13.GIF20kb.20.02.1998 17:02скачать
CAT14.GIF9kb.20.02.1998 07:56скачать
CAT2.GIF28kb.20.02.1998 08:11скачать
CAT8.GIF12kb.20.02.1998 17:03скачать
CAT9.GIF3kb.20.02.1998 17:01скачать
DOG13.GIF5kb.22.02.1998 02:36скачать
DOG1.GIF12kb.20.02.1998 07:53скачать
DOLPHIN.GIF18kb.20.02.1998 16:53скачать
DOLPHINS.GIF18kb.20.02.1998 07:34скачать
DOVE.GIF102kb.20.02.1998 16:59скачать
EAGLES.GIF85kb.22.02.1998 02:45скачать
FISH.GIF31kb.20.02.1998 07:30скачать
FLAM~172.GIF10kb.20.02.1998 07:11скачать
FLYI~176.GIF17kb.20.02.1998 07:12скачать
FROG.GIF8kb.20.02.1998 07:09скачать
LEOPARD.GIF8kb.20.02.1998 06:56скачать
MONKEY2.GIF34kb.20.02.1998 06:59скачать
MOOSE.GIF19kb.20.02.1998 06:55скачать
MOUSE1.GIF27kb.20.02.1998 07:02скачать
MOUSE2.GIF11kb.20.02.1998 06:53скачать
MOUSE3.GIF39kb.20.02.1998 06:55скачать
MOUSE.GIF72kb.20.02.1998 16:53скачать
ORCA.GIF10kb.20.02.1998 06:52скачать
OWL.GIF34kb.20.02.1998 16:42скачать
POLA~232.GIF16kb.20.02.1998 06:52скачать
PTER~234.GIF14kb.20.02.1998 19:19скачать
PUMA.GIF10kb.20.02.1998 06:50скачать
REDWORMS.GIF4kb.20.02.1998 06:51скачать
SEAGULL.GIF5kb.20.02.1998 06:48скачать
SPIDER1.GIF7kb.20.02.1998 06:46скачать
SWAN.GIF31kb.20.02.1998 06:45скачать
TIGER1.GIF10kb.20.02.1998 06:42скачать
TIGER2.GIF39kb.20.02.1998 06:54скачать
TIGER3.GIF12kb.20.02.1998 06:40скачать
TIGER4.GIF6kb.20.02.1998 06:40скачать
TIGER5.GIF9kb.20.02.1998 06:40скачать
TIGER6.GIF22kb.20.02.1998 05:44скачать
TRACKS.GIF3kb.20.02.1998 05:35скачать
T-REX.GIF50kb.20.02.1998 16:42скачать
TURTLE2.GIF12kb.20.02.1998 05:31скачать
WORM.GIF4kb.20.02.1998 05:30скачать
ani-tri.gif2kb.03.11.1998 15:51скачать
A-ANI5.GIF38kb.20.02.1998 06:40скачать
ASTERO~8.GIF49kb.20.02.1998 16:40скачать
EARTH10.GIF24kb.20.02.1998 16:36скачать
EARTH12.GIF8kb.20.02.1998 16:33скачать
EARTH13.GIF36kb.20.02.1998 16:33скачать
EARTH14.GIF52kb.20.02.1998 16:34скачать
EARTH16.GIF15kb.20.02.1998 16:30скачать
EARTH18.GIF87kb.20.02.1998 16:35скачать
EARTH1.GIF10kb.20.02.1998 16:37скачать
EARTH2.GIF113kb.23.02.1998 14:01скачать
EARTH4.GIF21kb.20.02.1998 06:32скачать
EARTH6.GIF55kb.20.02.1998 16:47скачать
EARTH8.GIF18kb.20.02.1998 16:35скачать
EARTH9.GIF7kb.20.02.1998 06:23скачать
EARTHBUT.GIF8kb.20.02.1998 06:07скачать
EARTH.GIF28kb.20.02.1998 06:34скачать
GLDGLOBE.GIF87kb.20.02.1998 16:29скачать
GLOBE.GIF19kb.20.02.1998 06:07скачать
GP_GLO~6.GIF37kb.20.02.1998 06:07скачать
MOON1.GIF40kb.20.02.1998 06:04скачать
MOON2.GIF26kb.20.02.1998 16:25скачать
MOON3.GIF47kb.20.02.1998 06:04скачать
MOON.GIF14kb.20.02.1998 06:05скачать
PLANET1.GIF168kb.22.02.1998 23:17скачать
PLANET3.GIF146kb.20.02.1998 16:26скачать
PLANET.GIF20kb.20.02.1998 16:29скачать
PULSAR.GIF3kb.20.02.1998 05:48скачать
REDGLOBE.GIF68kb.20.02.1998 16:24скачать
SATURN.GIF30kb.20.02.1998 05:52скачать
SHINING.GIF7kb.20.02.1998 05:47скачать
SPIKE.GIF4kb.20.02.1998 05:48скачать
STAR1.GIF53kb.22.02.1998 22:22скачать
STAR2.GIF3kb.20.02.1998 05:48скачать
STAR3.GIF17kb.20.02.1998 05:45скачать
STAR4.GIF3kb.20.02.1998 05:40скачать
STAR5.GIF1kb.20.02.1998 05:39скачать
STAR6.GIF7kb.20.02.1998 05:41скачать
STAR7.GIF3kb.20.02.1998 05:41скачать
STAR8.GIF5kb.20.02.1998 05:39скачать
STAR.GIF2kb.20.02.1998 05:47скачать
STARRY.GIF9kb.20.02.1998 05:39скачать
STARS.GIF11kb.20.02.1998 05:52скачать
TWSTAR.GIF3kb.20.02.1998 05:37скачать
ABALL1AB.GIF9kb.20.02.1998 09:59скачать
ABALL1A.GIF7kb.20.02.1998 09:58скачать
ABALL2A.GIF9kb.20.02.1998 09:57скачать
ABALL3A.GIF9kb.20.02.1998 09:57скачать
ABALL4A.GIF9kb.20.02.1998 10:07скачать
ABALL6A.GIF9kb.20.02.1998 09:56скачать
AG_BALL3.GIF4kb.20.02.1998 09:58скачать
AN_ICONA.GIF6kb.20.02.1998 18:22скачать
BALL1.GIF4kb.20.02.1998 09:54скачать
BALL2.GIF2kb.20.02.1998 09:54скачать
BALL3.GIF4kb.20.02.1998 09:54скачать
BALL.GIF6kb.20.02.1998 09:57скачать
BLINE.GIF3kb.20.02.1998 09:53скачать
BLINK~42.GIF3kb.20.02.1998 09:53скачать
BLINKIE.GIF3kb.20.02.1998 09:53скачать
BLUBOU.GIF1kb.20.02.1998 09:52скачать
BLUEBALL.GIF9kb.20.02.1998 09:53скачать
BLUER~50.GIF11kb.20.02.1998 09:53скачать
BLUERED.GIF2kb.20.02.1998 09:52скачать
BLUES~52.GIF3kb.20.02.1998 09:52скачать
BLUEY~54.GIF10kb.20.02.1998 09:51скачать
BLUPULSE.GIF2kb.20.02.1998 09:51скачать
BNC_ANM.GIF5kb.20.02.1998 09:53скачать
BUBBLER.GIF6kb.20.02.1998 09:48скачать
CONENB.GIF50kb.20.02.1998 09:52скачать
GLOBE.GIF40kb.20.02.1998 18:25скачать
GOLD1.GIF2kb.20.02.1998 09:41скачать
GP_BUT27.GIF10kb.22.02.1998 23:59скачать
GP_BUT29.GIF18kb.20.02.1998 09:44скачать
GP_BUT37.GIF2kb.20.02.1998 09:37скачать
GP_BUT38.GIF1kb.20.02.1998 09:36скачать
GP_BUT39.GIF2kb.20.02.1998 09:39скачать
GP_BUT40.GIF7kb.20.02.1998 09:44скачать
GP_GLO~7.GIF77kb.24.02.1998 00:22скачать
GP_GLO~8.GIF6kb.20.02.1998 09:39скачать
GP_GLO~9.GIF5kb.20.02.1998 09:32скачать
GP_GRN~2.GIF13kb.20.02.1998 09:36скачать
GP_MOON.GIF8kb.20.02.1998 09:31скачать
GP_PIC3.GIF72kb.20.02.1998 09:36скачать
GP_PIC4.GIF119kb.24.02.1998 00:21скачать
G_SPIRAL.GIF9kb.23.02.1998 00:02скачать
PALLA.GIF8kb.20.02.1998 09:30скачать
PERLREDB.GIF2kb.20.02.1998 09:29скачать
PURPIN.GIF2kb.20.02.1998 09:29скачать
ROLLBALL.GIF5kb.20.02.1998 09:29скачать
ROTDONE.GIF25kb.20.02.1998 09:31скачать
SBUTTON.GIF15kb.20.02.1998 09:26скачать
SOC_ANM.GIF14kb.22.02.1998 23:59скачать
SPIK~126.GIF8kb.20.02.1998 09:22скачать
SQUI~128.GIF9kb.20.02.1998 09:29скачать
TCWD_106.GIF7kb.20.02.1998 05:29скачать
TCWD_118.GIF4kb.20.02.1998 05:29скачать
banner_3.gif14kb.22.12.1998 20:36скачать
1P_BAR1.GIF135kb.23.02.1998 20:41скачать
AG_BAR2.GIF3kb.20.02.1998 09:22скачать
ANIMA~22.GIF9kb.20.02.1998 09:21скачать
ANIM-BAR.GIF7kb.20.02.1998 09:20скачать
ANI-TUBE.GIF8kb.20.02.1998 09:19скачать
BAR_ANM.GIF7kb.20.02.1998 09:18скачать
BAR_EL.GIF11kb.20.02.1998 09:18скачать
BARMOVE.GIF28kb.20.02.1998 09:19скачать
BARSTAR.GIF5kb.20.02.1998 09:17скачать
BBOMB.GIF14kb.20.02.1998 09:17скачать
BEEP2.GIF4kb.20.02.1998 09:16скачать
BLOODBAR.GIF5kb.20.02.1998 09:17скачать
BLUEONE.GIF4kb.20.02.1998 09:16скачать
BLUERULE.GIF4kb.20.02.1998 09:16скачать
BLUETWO.GIF2kb.20.02.1998 09:15скачать
BOLT_ANI.GIF18kb.20.02.1998 09:15скачать
BOMBBAR.GIF11kb.20.02.1998 09:14скачать
BR_BAR.GIF12kb.20.02.1998 09:18скачать
BULBOUT.GIF2kb.20.02.1998 09:13скачать
BURST~70.GIF10kb.20.02.1998 09:14скачать
CANON.GIF15kb.20.02.1998 09:14скачать
CAT.GIF10kb.20.02.1998 09:16скачать
COLOR~82.GIF16kb.20.02.1998 09:17скачать
COLORBAR.GIF5kb.20.02.1998 09:13скачать
COLORLIN.GIF8kb.20.02.1998 09:13скачать
CON-BAR3.GIF7kb.20.02.1998 09:10скачать
COP.GIF13kb.20.02.1998 17:16скачать
DANCEBAR.GIF1kb.20.02.1998 09:09скачать
DOG_H~94.GIF64kb.20.02.1998 09:12скачать
DRIP1.GIF4kb.20.02.1998 09:09скачать
DRIP.GIF7kb.20.02.1998 09:09скачать
ELECTRIC.GIF6kb.20.02.1998 09:08скачать
FIREBAR2.GIF12kb.20.02.1998 09:09скачать
FIREBAR.GIF42kb.20.02.1998 09:12скачать
FLOW~110.GIF1kb.20.02.1998 09:07скачать
FUSS.GIF5kb.20.02.1998 09:07скачать
G_BAR_N3.GIF11kb.20.02.1998 09:08скачать
GEOBAR.GIF12kb.20.02.1998 09:09скачать
GP_BAR10.GIF12kb.20.02.1998 08:54скачать
GP_BAR11.GIF10kb.20.02.1998 17:12скачать
GP_BAR12.GIF18kb.20.02.1998 08:52скачать
GP_BAR1.GIF27kb.20.02.1998 09:05скачать
GP_BAR2.GIF45kb.20.02.1998 09:05скачать
GP_BAR3.GIF9kb.20.02.1998 17:16скачать
GP_BAR4.GIF13kb.20.02.1998 09:00скачать
GP_BAR5.GIF20kb.20.02.1998 09:00скачать
GP_BAR6.GIF17kb.20.02.1998 08:59скачать
GP_BAR7.GIF34kb.20.02.1998 17:13скачать
GP_BAR8.GIF62kb.23.02.1998 20:38скачать
GP_BAR9.GIF32kb.20.02.1998 08:59скачать
GP_GLO~5.GIF31kb.20.02.1998 08:55скачать
GREY~150.GIF14kb.20.02.1998 08:53скачать
HR1.GIF8kb.20.02.1998 08:49скачать
HR_S~156.GIF9kb.20.02.1998 08:50скачать
INDI~158.GIF10kb.20.02.1998 08:50скачать
JETRIGHT.GIF14kb.22.02.1998 02:46скачать
KILROY.GIF5kb.20.02.1998 08:48скачать
LASER.GIF6kb.20.02.1998 08:47скачать
LIBUNT.GIF1kb.20.02.1998 08:47скачать
LILRED.GIF3kb.20.02.1998 08:46скачать
LINE04C.GIF29kb.20.02.1998 17:15скачать
LINEDOT.GIF18kb.20.02.1998 08:47скачать
LOLLIPOP.GIF7kb.20.02.1998 17:11скачать
MATC~178.GIF9kb.20.02.1998 08:44скачать
NASCAR.GIF26kb.20.02.1998 17:12скачать
NEWS~182.GIF11kb.20.02.1998 08:41скачать
PROGRESS.GIF5kb.20.02.1998 08:38скачать
RULE02.GIF6kb.20.02.1998 08:38скачать
SABE~190.GIF30kb.20.02.1998 08:40скачать
SLIDBAR.GIF9kb.20.02.1998 08:36скачать
SPARK.GIF5kb.20.02.1998 08:33скачать
STAR~196.GIF14kb.20.02.1998 17:10скачать
WELLMESS.GIF12kb.20.02.1998 05:36скачать
WLCME.GIF8kb.20.02.1998 05:30скачать
YELLCAR.GIF28kb.20.02.1998 05:38скачать
BOOK2.GIF10kb.20.02.1998 18:57скачать
BOOK3.GIF20kb.20.02.1998 18:56скачать
ANIMASCT.GIF12kb.20.02.1998 11:32скачать
ANIRATZ.GIF4kb.20.02.1998 16:05скачать
ANMCALLE.GIF4kb.20.02.1998 11:32скачать
BUGSD~14.GIF68kb.20.02.1998 11:42скачать
CALVIN.GIF6kb.20.02.1998 11:28скачать
DEVIL~28.GIF8kb.20.02.1998 11:23скачать
DEVIL.GIF62kb.20.02.1998 11:30скачать
DRINK~30.GIF33kb.20.02.1998 11:22скачать
FOX.GIF18kb.20.02.1998 11:22скачать
FREAK~38.GIF3kb.20.02.1998 11:17скачать
GENIE.GIF67kb.20.02.1998 11:27скачать
GOLDHERO.GIF11kb.20.02.1998 11:15скачать
HERORUN.GIF57kb.20.02.1998 11:16скачать
OSCAR.GIF12kb.20.02.1998 10:59скачать
PNKPAN.GIF6kb.20.02.1998 10:58скачать
SHARPS.GIF99kb.20.02.1998 10:55скачать
SONIC.GIF5kb.20.02.1998 10:50скачать
SPIDE~54.GIF4kb.20.02.1998 10:50скачать
ST.GIF68kb.20.02.1998 10:56скачать
SUPER~58.GIF14kb.20.02.1998 10:49скачать
SYLVEST.GIF22kb.20.02.1998 10:49скачать
TWEETY.GIF9kb.20.02.1998 10:46скачать
VIKING.GIF38kb.20.02.1998 10:48скачать
WB.GIF16kb.20.02.1998 10:45скачать
WIZARD.GIF8kb.20.02.1998 10:43скачать
WOLF.GIF10kb.20.02.1998 10:43скачать
clownanim48.gif28kb.03.04.1998 17:05скачать
counting_fingers.gif4kb.11.10.1998 03:43скачать
3D.GIF20kb.20.02.1998 11:48скачать
COMETANI.GIF23kb.20.02.1998 11:49скачать
ORBIT.GIF57kb.20.02.1998 11:48скачать
WRING.GIF32kb.20.02.1998 11:37скачать
dancers.gif3kb.18.06.1998 21:05скачать
dansman.gif4kb.19.11.1998 02:53скачать
dtr10x.jpg35kb.18.03.1999 11:04скачать
dtr7.jpg25kb.07.11.1998 17:18скачать
ANI_EYE.GIF4kb.20.02.1998 12:00скачать
ANIMAL94.GIF22kb.20.02.1998 12:00скачать
EYE1.GIF17kb.20.02.1998 11:58скачать
EYE2.GIF41kb.20.02.1998 11:58скачать
EYE3.GIF19kb.20.02.1998 11:58скачать
EYE5.GIF17kb.20.02.1998 11:56скачать
EYE-LOOK.GIF3kb.20.02.1998 11:56скачать
EYE-MOV.GIF71kb.20.02.1998 12:00скачать
EYES2ANI.GIF30kb.20.02.1998 11:53скачать
EYES.GIF3kb.20.02.1998 11:54скачать
GP_PIC5.GIF134kb.20.02.1998 12:04скачать
GRN_E~40.GIF3kb.20.02.1998 11:50скачать
GRNEYES.GIF7kb.20.02.1998 11:49скачать
PEEP.GIF21kb.20.02.1998 13:12скачать
ANGEL.GIF54kb.20.02.1998 12:19скачать
ANKH.GIF8kb.20.02.1998 12:13скачать
DFLYGB.GIF28kb.25.02.1998 05:15скачать
DFLYGS.GIF28kb.25.02.1998 05:15скачать
DFLYSB.GIF19kb.25.02.1998 05:16скачать
DFLYS.GIF43kb.25.02.1998 05:16скачать
DRAGON~1.GIF12kb.20.02.1998 12:12скачать
DRAGON1.GIF41kb.20.02.1998 12:14скачать
DRAGON2.GIF18kb.20.02.1998 12:11скачать
HPS.GIF10kb.20.02.1998 12:10скачать
MONSTER.GIF11kb.20.02.1998 12:07скачать
PEGASUS2.GIF12kb.20.02.1998 12:05скачать
PEGASUS.GIF143kb.23.02.1998 20:26скачать
SORCE~44.GIF14kb.20.02.1998 12:05скачать
SPIRIT.GIF6kb.20.02.1998 12:05скачать
SWORD1.GIF51kb.20.02.1998 12:06скачать
SWORD.GIF23kb.20.02.1998 13:10скачать
SWORDS1.GIF23kb.20.02.1998 12:02скачать
UNUS_~58.GIF102kb.22.02.1998 02:34скачать
WIZARD1.GIF20kb.20.02.1998 13:08скачать
WRAITH.GIF24kb.20.02.1998 12:01скачать
ANI020.GIF22kb.20.02.1998 12:42скачать
BLUFIRE.GIF4kb.20.02.1998 12:42скачать
CANDLE1.GIF8kb.20.02.1998 12:41скачать
CANDLE2.GIF2kb.20.02.1998 12:41скачать
CANDLE3.GIF4kb.20.02.1998 12:40скачать
CANDLE6.GIF22kb.20.02.1998 12:48скачать
CANDLE7.GIF8kb.20.02.1998 12:45скачать
CANDLE.GIF10kb.20.02.1998 12:42скачать
DOOMFIRE.GIF13kb.20.02.1998 12:38скачать
DRKTORCH.GIF15kb.20.02.1998 13:10скачать
EXPLO~34.GIF19kb.20.02.1998 12:37скачать
FIRE001.GIF17kb.20.02.1998 12:35скачать
FIRE1.GIF7kb.20.02.1998 12:34скачать
FIRE2.GIF46kb.20.02.1998 12:36скачать
FIRE3.GIF6kb.20.02.1998 12:34скачать
FIREANM.GIF6kb.20.02.1998 12:33скачать
FIRELINK.GIF100kb.20.02.1998 12:41скачать
FIREW~54.GIF65kb.20.02.1998 13:09скачать
FIREW~56.GIF65kb.20.02.1998 12:33скачать
FIREW~58.GIF69kb.20.02.1998 12:33скачать
FIREWRKS.GIF37kb.20.02.1998 12:32скачать
FLAME1.GIF12kb.20.02.1998 13:07скачать
FLAME2.GIF4kb.20.02.1998 13:06скачать
FLAME3.GIF22kb.20.02.1998 13:07скачать
FLAME.GIF21kb.20.02.1998 12:30скачать
FLAMM~72.GIF7kb.20.02.1998 12:23скачать
FLIKER.GIF40kb.20.02.1998 13:07скачать
NUCLEAR.GIF34kb.20.02.1998 12:22скачать
RTORCH.GIF9kb.20.02.1998 12:19скачать
TORCH1.GIF16kb.20.02.1998 13:07скачать
TORCH.GIF12kb.20.02.1998 12:21скачать
TORCHSM.GIF16kb.20.02.1998 12:20скачать
ANIMDIAB.GIF26kb.20.02.1998 13:06скачать
BCROSS.GIF21kb.20.02.1998 13:06скачать
BLACK~10.GIF15kb.20.02.1998 13:05скачать
BONED~12.GIF23kb.20.02.1998 13:05скачать
BUTCHER.GIF15kb.20.02.1998 13:04скачать
CHESS.GIF23kb.20.02.1998 13:04скачать
DEDDI~20.GIF83kb.20.02.1998 12:49скачать
DIABL~24.GIF67kb.20.02.1998 13:03скачать
DIABL~26.GIF65kb.20.02.1998 13:12скачать
DIABL~28.GIF25kb.20.02.1998 13:02скачать
DIABL~30.GIF69kb.20.02.1998 13:06скачать
DNTIGER1.GIF16kb.20.02.1998 13:00скачать
DOOM2.GIF5kb.20.02.1998 13:00скачать
DRUIDD.GIF67kb.20.02.1998 13:03скачать
EXPLO~42.GIF26kb.20.02.1998 12:59скачать
FIGHTER.GIF8kb.20.02.1998 12:58скачать
GANGS.GIF47kb.25.02.1999 17:37скачать
INCIN~48.GIF21kb.20.02.1998 16:07скачать
INVIS~50.GIF12kb.20.02.1998 12:58скачать
KNIGHT.GIF35kb.20.02.1998 13:05скачать
LAZARUS.GIF21kb.20.02.1998 13:00скачать
LORDS~56.GIF25kb.20.02.1998 12:58скачать
MAGEAT.GIF19kb.20.02.1998 12:53скачать
MAGE.GIF30kb.20.02.1998 12:53скачать
MAGICIAN.GIF50kb.20.02.1998 13:02скачать
PEN.GIF27kb.20.02.1998 12:52скачать
PENTA~68.GIF3kb.20.02.1998 12:51скачать
PENTA~70.GIF11kb.20.02.1998 12:51скачать
QUAKE.GIF13kb.20.02.1998 12:51скачать
RAD.GIF10kb.20.02.1998 12:51скачать
ROGUEBOW.GIF12kb.20.02.1998 12:51скачать
SCORPIO.GIF14kb.20.02.1998 12:51скачать
SKULL~84.GIF5kb.20.02.1998 12:50скачать
SKULL~86.GIF9kb.20.02.1998 12:50скачать
SORCERF.GIF19kb.20.02.1998 12:50скачать
SUB-ZERO.GIF13kb.20.02.1998 12:52скачать
SUCCUBUS.GIF14kb.20.02.1998 12:50скачать
UNRAV~96.GIF9kb.20.02.1998 12:50скачать
UO.GIF13kb.20.02.1998 12:50скачать
WARRIORA.GIF17kb.20.02.1998 12:50скачать
WARRIORB.GIF19kb.20.02.1998 12:49скачать
WARRIOR.GIF19kb.20.02.1998 12:49скачать
HAND1.GIF37kb.20.02.1998 12:46скачать
HAND3.GIF55kb.20.02.1998 12:47скачать
HAND.GIF23kb.20.02.1998 12:46скачать
HANDS.GIF24kb.20.02.1998 12:45скачать
HANDWAVE.GIF17kb.20.02.1998 12:45скачать
HEART2.GIF10kb.20.02.1998 18:55скачать
ABELLL~6.GIF25kb.23.02.1998 04:29скачать
ABELLR~8.GIF24kb.23.02.1998 04:39скачать
XMASLT2.GIF21kb.23.02.1998 02:42скачать
hoparlor.gif10kb.02.04.1998 15:11скачать
hot_mix.gif20kb.09.06.1998 14:04скачать
line13.gif15kb.18.04.1998 02:16скачать
mailmove.gif7kb.18.05.1998 02:36скачать
1P_LVER1.GIF61kb.24.02.1998 19:22скачать
ALARMCL.GIF8kb.24.02.1998 19:20скачать
ANADIM.GIF29kb.24.02.1998 19:21скачать
ART.GIF33kb.24.02.1998 19:19скачать
ASTER.GIF13kb.24.02.1998 19:19скачать
BLOB.GIF5kb.24.02.1998 19:04скачать
BRUSH.GIF30kb.24.02.1998 19:04скачать
C_FAN.GIF13kb.24.02.1998 19:03скачать
CLAP.GIF49kb.24.02.1998 19:03скачать
$.GIF30kb.24.02.1998 19:22скачать
GUNANIM.GIF9kb.24.02.1998 18:51скачать
LLRINGS.GIF31kb.25.02.1998 05:16скачать
LOOKER1.GIF2kb.25.02.1998 05:16скачать
M14.GIF9kb.25.02.1998 05:16скачать
PLAYBOY.GIF9kb.24.02.1998 00:38скачать
RCHAIR.GIF30kb.24.02.1998 00:37скачать
REDRINGS.GIF37kb.24.02.1998 00:36скачать
RFHEA~40.GIF19kb.24.02.1998 00:37скачать
RING_ANM.GIF9kb.24.02.1998 00:36скачать
ROSE01.GIF22kb.24.02.1998 00:35скачать
STARR.GIF138kb.24.02.1998 00:32скачать
MOV11.GIF5kb.03.04.1998 17:10скачать
mp3cd.gif30kb.20.11.1998 05:07скачать
newSmCLR.gif2kb.18.06.1998 21:07скачать
PERL.GIF32kb.02.04.1998 15:20скачать
pulsar1.gif12kb.17.01.1998 21:25скачать
ATOM1.GIF7kb.24.02.1998 21:00скачать
ATOM2.GIF37kb.24.02.1998 21:00скачать
ATOM3.GIF25kb.24.02.1998 21:00скачать
NUC_AN3.GIF12kb.24.02.1998 20:59скачать
SPIKES.GIF15kb.24.02.1998 20:59скачать
DANCIN~8.GIF34kb.24.02.1998 20:54скачать
SKELE~14.GIF7kb.24.02.1998 20:52скачать
SKELE~16.GIF66kb.24.02.1998 20:52скачать
SKELEDAN.GIF22kb.24.02.1998 20:53скачать
SKELETON.GIF70kb.24.02.1998 20:54скачать
SKULL1.GIF40kb.24.02.1998 20:52скачать
SKULL2.GIF31kb.24.02.1998 20:52скачать
SKULL33.GIF4kb.24.02.1998 20:49скачать
SKULL3.GIF13kb.24.02.1998 20:50скачать
SKULL.GIF46kb.24.02.1998 20:51скачать
Smile.gif2kb.03.04.1998 17:10скачать
SMILELY.GIF1kb.03.04.1998 17:10скачать
ABDUCT~6.GIF33kb.24.02.1998 20:50скачать
ALIEN1.GIF14kb.24.02.1998 20:49скачать
ALIEN2.GIF17kb.24.02.1998 20:49скачать
ALIENBAL.GIF33kb.24.02.1998 20:49скачать
AL_IEN.GIF6kb.24.02.1998 20:49скачать
ALIEN.GIF15kb.24.02.1998 20:49скачать
ALION.GIF5kb.24.02.1998 20:47скачать
BORGSHIP.GIF121kb.24.02.1998 20:48скачать
COOL_D1.GIF15kb.24.02.1998 20:47скачать
FLASH.GIF5kb.24.02.1998 20:46скачать
FLYIN~30.GIF6kb.24.02.1998 20:46скачать
GBOWL.GIF22kb.24.02.1998 20:46скачать
KLINGON.GIF33kb.24.02.1998 20:45скачать
LIGHTMAN.GIF126kb.24.02.1998 20:47скачать
MECH10.GIF35kb.24.02.1998 20:40скачать
MECH1.GIF7kb.24.02.1998 20:43скачать
MECH2.GIF54kb.24.02.1998 20:45скачать
MECH3.GIF56kb.24.02.1998 20:43скачать
MECH4.GIF55kb.24.02.1998 20:43скачать
MECH5.GIF37kb.24.02.1998 20:41скачать
MECH6.GIF53kb.24.02.1998 20:42скачать
MECH7.GIF62kb.24.02.1998 20:41скачать
MECH8.GIF60kb.24.02.1998 20:41скачать
MECH9.GIF15kb.24.02.1998 20:39скачать
NXTGEN.GIF53kb.24.02.1998 20:38скачать
R2D2.GIF146kb.24.02.1998 20:39скачать
REDSHIP.GIF95kb.24.02.1998 20:37скачать
SHIPANI.GIF39kb.24.02.1998 20:34скачать
SHIP.GIF96kb.24.02.1998 20:36скачать
SPACE~84.GIF27kb.24.02.1998 20:29скачать
SPACE~90.GIF76kb.24.02.1998 20:31скачать
SPACE~92.GIF46kb.24.02.1998 20:27скачать
SPACE.GIF111kb.24.02.1998 20:34скачать
SPSHIP10.GIF10kb.24.02.1998 20:16скачать
SPSHIP12.GIF44kb.24.02.1998 19:44скачать
SPSHIP1.GIF28kb.24.02.1998 20:24скачать
SPSHIP2.GIF104kb.24.02.1998 20:24скачать
SPSHIP3.GIF18kb.24.02.1998 20:22скачать
SPSHIP4.GIF67kb.24.02.1998 20:22скачать
SPSHIP6.GIF36kb.24.02.1998 20:21скачать
SPSHIP7.GIF36kb.24.02.1998 20:20скачать
SPSHIP8.GIF114kb.24.02.1998 20:21скачать
SPSHIP9.GIF42kb.24.02.1998 20:18скачать
SPSHIP.GIF84kb.24.02.1998 20:26скачать
STARBADG.GIF14kb.24.02.1998 19:43скачать
STARWARS.GIF102kb.24.02.1998 19:42скачать
TIEF~130.GIF74kb.24.02.1998 19:42скачать
TREK.GIF21kb.24.02.1998 19:39скачать
VOYBAR2.GIF17kb.24.02.1998 19:38скачать
WINK~142.GIF19kb.24.02.1998 19:38скачать
XWINGS.GIF25kb.24.02.1998 19:38скачать
Spicker.gif6kb.03.11.1998 16:03скачать
thatsall200.gif21kb.13.12.1998 12:43скачать
CAMERA1.GIF108kb.25.02.1998 05:13скачать
XFILES.GIF25kb.25.02.1998 05:09скачать
under5.gif6kb.13.04.1998 00:28скачать
LIGHT~14.GIF37kb.25.02.1998 05:13скачать
LIGHT~18.GIF42kb.25.02.1998 05:13скачать
TWISTER2.GIF13kb.25.02.1998 05:09скачать
задание СПС лаб6.doc27kb.20.04.2005 11:14скачать
1. РАЗРАБОТКА СПРАВОЧНЫХ HTML-СИСТЕМ.DOC103kb.24.02.2001 09:44скачать
2. ОБЗОР СИСТЕМЫ HTML HELP.DOC95kb.24.02.2001 07:47скачать
3. Работа с HTML Work Shop.doc225kb.28.03.2005 11:56скачать
4. ИНФОРМАЦИОННЫЕ МАТЕРИАЛЫ HTML И ФАЙЛ ПРОЕКТА.DOC54kb.23.02.2001 11:07скачать
5. MICROSOFT HTML HELP.DOC263kb.24.02.2001 10:04скачать
Как организовать вызов дополнительного окна на гиперссылку.doc30kb.23.03.2005 22:33скачать
Добавление закладки ПОИСК в HTML-HELP.doc56kb.23.03.2005 23:01скачать
Создание Pop-Up окна в HTML-HELP файлах.doc53kb.21.03.2005 23:51скачать
Встраивание сценариев в HTML.doc27kb.28.03.2005 20:46скачать
Прочие элементы.doc26kb.27.03.2005 20:23скачать
Словарь по HTML для начинающих.doc43kb.28.03.2005 15:06скачать
Таблица цветов RGB и HTML.doc232kb.28.03.2005 15:15скачать
1. Добавление Flash к Html-Help.doc43kb.27.03.2005 18:59скачать
2. Подключение Flash к html.doc41kb.26.03.2005 10:27скачать
3. Атрибуты тэгов OBJECT и EMBED.doc76kb.26.03.2005 01:00скачать
Hh_C++.pdf77kb.12.02.2001 06:56скачать
Hh_VB.pdf60kb.12.02.2001 06:56скачать
1. ИСПОЛЬЗОВАНИЕ HTML HELP В ПРИЛОЖЕНИЯХ НА VISUAL BASIC.DOC123kb.24.05.2005 19:31скачать
2. Добавление HTML Help в приложение VB 6.0.doc28kb.02.04.2010 11:57скачать
3. Как вызывать help из приложения С++.doc48kb.06.03.2005 10:05скачать
4. Использование HTML Help в проекте MFC.doc29kb.17.03.2005 14:52скачать
Теги HTML.doc1691kb.31.03.2006 14:36скачать
01. Все, что нужно знать о программировании в Macromedia Flash.doc178kb.04.05.2005 14:38скачать
02. СПРАВОЧНИК по программированию во FLASH.doc407kb.04.05.2005 14:37скачать
03. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ в ACTION SCRIPT.doc605kb.03.05.2005 17:24скачать
04. Программирование клиентских приложений с использованием Macromedia Flash.doc133kb.28.03.2005 19:09скачать
05. ЯЗЫК ACTION SCRIPT.doc2998kb.20.04.2005 10:27скачать
06. ActionScript - во Flash.doc104kb.30.03.2005 11:08скачать
07. Отладка во Flash 5.doc124kb.01.03.2004 11:23скачать
08. Обнаружение ошибок в именах переменных Actionscript.doc26kb.26.11.2003 10:45скачать
09. Создание элементов сайтов с использованием Flash.doc133kb.28.03.2005 19:20скачать
10. Программное создание часов во Flash.doc76kb.28.03.2005 19:24скачать
11. Программирование во Flash.doc54kb.01.03.2004 10:54скачать
12. Стандарты Actionscript.doc218kb.26.03.2005 01:07скачать

12. Стандарты Actionscript.doc

Реклама MarketGid:
Загрузка...

Стандарты Actionscript

13.03.2002 — 01.10.2002

Содержание

Стиль

  • Принципы присвоения имен

  • Комментирование кода

  • Формат временной диаграммы

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

  • Используйте относительные пути для задания области видимости

  • _root против _global

Соглашения ActionScript

  • Держите весь код в одном месте

  • Используйте файлы #include .as

  • Кадры как состояния приложения

  • Избегайте размещения кода на мувиклипах и кнопках

  • Инициализация

  • Используйте ключевое слово var для локальных переменных

  • Создание объектов

  • Наследование объектов

Производительность

  • Предварительная загрузка

  • Типы данных и их размеры в файлах .swf

  • Предосторожности использования оперативной памяти

Вывод

 

Стандарты Actionscript

Приложения Macromedia Flash в основном строились без учета каких-либо стандартов и основополагающих принципов. Такая гибкость способствует решению задач множеством способов, и это хорошо, но приложение становится непроходимым лесом для всех кроме автора — такой код сложен для понимания. Даже автор, спустя некоторое время, будет с трудом читать написанный им же код. Если разработчик не может понять код в приложении, то код будет трудно отлаживать, вносить в него изменения или использовать его многократно.

Стиль 

Принципы присвоения имен 

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

  • Имя клипа — "my_movie.swf";

  • Переменная для добавления к URL — "course_list_output" (вывод списка курсов);

  • Компонент или объект — "ProductInformation" (информация о продукте)

  • Переменная или свойство — "userName" (имя пользователя)

Имена функций и переменных должны начинаться со строчной буквы (a, b, c, ..., x, y, z). Имена объектов и конструкторов объектов должны начинаться с заглавной буквы (A, B, C, ..., X, Y, Z). Использование смешанных регистров символов рекомендуется в случае именования переменных. Другие форматы именования приемлемы, если они используются последовательно во всем проекте. Имя переменной может содержать только буквы, числа и символы подчеркивания. Не начинайте имя переменной с числа или символа подчеркивания. Неправильными именами переменных будут следующие:

  • _count = 5; // начинается с символа подчеркивания

  • 5count = 0; // начинается с числа

  • foo/bar = true; // содержит символ "слэш"

  • foo bar = false; // содержит пробел

Кроме того, в качестве имен переменных нельзя использовать ключевые слова ActionScript. Также избегайте использования в качестве имен переменных слов из популярных конструкций программирования, даже если Macromedia Flash Player к настоящему времени не поддерживает эти конструкции в качестве ключевых слов. Это дает больше уверенности в том, что будущие версии проигрывателя не вступят в конфликт с вашим приложением. Например, не нужно делать так:

  • var = "foo";

  • MovieClip = "myMovieClip";

  • switch = "on";

  • case = false;

  • abstract = "bar";

  • extends = true;

  • implements = 5;

Так как ActionScript совместим с ECMAScript, авторы приложений могут ознакомиться со списком зарезервированных слов, приведенных в спецификации ECMA. Пока Flash MX не поддерживает константы, разработчики должны применять следующий принцип: имена переменных набирать символами нижнего регистра, а имена переменных-констант — только символами верхнего регистра. Например:

  • course_list_output = "foo"; // переменная

  • courseListOutput = "foo"; // переменная

  • BASEURL = http://www.foo.com; // константа

  • MAXCOUNTLIMIT = 10; // константа

  • MyObject = function{}; // функция конструктора

  • f = new MyObject(); // объект

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


Таблица 3
: Суффиксы для активации функции завершения кода

frame1Вы увидите эту функцию в действии, если наберете в панели Actions один из примеров и символ точки. Например, введите myString_str. — появится выпадающий список свойств и методов для объекта String. Не забывайте о точке:


Рисунок 1
: Пример действия помощника завершения кода.

Наконец, имена всех .swf-файлов должны быть набраны в нижнем регистре, а слова в именах должны быть разделены символом подчеркивания (например, "lower_case.swf"). Обсуждение соглашений об именовании включаемых файлов ActionScript см. в разделе "Используйте файлы #include .as".

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

^ Комментирование кода 

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

Когда вы пишете "обходной" код для решения специфических, нестандартных задач вашего приложения, добавьте комментарий, из которого другие разработчики поймут, в чем заключалась сложность, и как вы ее обошли. Это облегчает понимание специфических проблем теми разработчиками, которые еще могут с ними столкнуться. Это просто облегчает им жизнь.

Вот пример простого комментария для переменной:

var clicks = 0; // переменная для подсчета нажатий кнопки

Блочные комментарии полезны для больших кусков текста:

/*
Инициализирует переменную clicks, хранящую количество нажатий кнопки.
*/

Ниже приведены некоторые общие методы для указания особо важных комментариев (в скобках предложены русскоязычные аналоги):

// :TODO: topic (// :СДЕЛАТЬ: тема)

Указывает, что код нужно доделать или сделать что-то еще.

// :BUG: [bugid] topic (// :ОШИБКА: [номер ошибки] тема)

Показывает известную ошибку ("глюк", "баг"). Комментарий также должен объяснять, в чем состоит проблема, и содержать "bug ID" (номер "бага"), если необходимо.

// :KLUDGE: (// :ВОЗМОЖЕН ДРУГОЙ ВАРИАНТ:)

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

// :TRICKY: (// :РИСКОВАНО:)

Уведомляет разработчиков, что код со многим взаимосвязан (его изменение повлечет изменения в других местах). Это совет разработчику: "подумай, прежде чем что-то изменять".

Пример

/*
:TODO: msw 654321: проблемы с отображением больших объемов данных из БД. Наверное, следует разбивать данные на более мелкие порции для каждого запроса.
*/

^ Формат временной диаграммы (таймлайна) 

Избегайте использования названий слоев, принятых по умолчанию (Layer 1, Layer 2, и т.п.), так как это может привести к путанице. Слои таймлайна должны называться интуитивно понятным образом. Слои также должны быть сгруппированы вместе путем использования папок там, где это имеет смысл. Например, следует располагать все слои с кодом ActionScript на самом верху стека слоев, чтобы в таймлайне можно было легко найти весь код.

Блокирование неиспользуемых в данный момент слоев — хорошая практика. Это предупреждает случайные изменения в документе.

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

Flash Player 6 поддерживает концепцию "цепочки областей видимости" (как определено в стандарте ECMA-262). Таким образом, устранены значительные недостатки "прямой области видимости" в Flash Player 5.

Цепочка областей видимости — это список ActionScript-объектов. Flash Player ищет идентификатор, начиная с последнего элемента в цепочке областей видимости, и продолжает подниматься по цепочке, пока не найдет его.

Цепочка областей видимости для типичного сценария ActionScript:

  • Объект Global;

  • Объект MovieClip;

  • Локальные переменные.

Конструкция with временно добавляет объект в конец цепочки областей видимости. Когда действие with прекращается, объект удаляется из цепочки областей видимости.

При определении функции текущая цепочка областей видимости копируется и хранится в объекте функции. При вызове функции происходит переключение текущей цепочки областей видимости на цепочку областей видимости объекта функции, а в конец цепочки добавляется новый объект Local Variables.

В Flash 5 область видимости функции всегда была следующей:

  • Объект Global;

  • мувиклип, содержащий функцию;

  • Локальные переменные.

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

В Macromedia Flash Player 6 при определении метода мувиклипа вне самого мувиклипа цепочка областей видимости метода будет содержать внешний объект, а не объект мувиклипа, для которого определяется метод. В таком случае в теле определяемого метода необходимо использовать ключевое слово this, чтобы используемые в этом методе идентификаторы ссылались на объект мувиклипа, а не на внешний объект.

Имейте в виду, что поддерживается обратная совместимость с Flash Player 5. Для среды разработки Flash 5 применимы те же правила использования области видимости, что и для Flash Player 5.

Используйте относительные пути для задания области видимости 

Область видимости должна быть задана для каждой переменной. Исключением являются параметры функций и локальные переменные. Область видимости переменных должна задаваться относительно их текущего положения, если это возможно. Использование _root для задания области видимости переменной не рекомендуется, поскольку это ограничивает мобильность кода. Вместо _root используйте ключевое слово _parent или this, например:

this.myVar.blah = 100; // определяйте область видимости для переменных, используя относительную адресацию, как в этой строке

_root.myMovieClip.myVar.blah = 100; // НЕ задавайте область видимости переменных, используя абсолютные ссылки, как в этой строке

Если все же приходится использовать абсолютную адресацию к главному таймлайну, вместо использования _root создайте переменную-ссылку на главный таймлайн. Это позволит изменять всего один параметр, если структура таймлайна изменится. Чтобы создать удобную ссылку на основной таймлайн клипа, добавьте такую строку кода к основному таймлайну:

_global.myAppMain = this; // (замените "myApp" названием вашего приложения)

После вставки этой строки в ваше приложение, используйте _global.myAppMain.someFunction, чтобы ссылаться на функции главного таймлайна. Это позволяет изменять структуру приложения, не нарушая область видимости вызовов функций и переменных в клипе. Подробнее об этом читайте в статье "Мобильный код".

_root против _global 

Важно понимать разницу между _global и _root. Ссылка _root уникальна только в рамках каждого загруженного .swf-клипа. Ссылка _global применима ко всем клипам в пределах проигрывателя. В общем случае для ссылок лучше использовать _global , а не _root.

^ Соглашения ActionScript 

Держите весь код в одном месте 

Везде, где это возможно, весь код должен размещаться в одном месте. Это облегчает его нахождение и отладку. Одна из главных сложностей в отладке клипов Macromedia Flash — это поиск кода. Если большая часть кода размещена в одном кадре, эта проблема устраняется. Обычно лучшее место для размещения кода — это первый кадр.

Когда в первом кадре расположен большой код, разделите его на части комментариями, чтобы повысить читабельность, например:

/*** Раздел функций для кнопок ***/

/*** Константы и переменные ***/

Одно исключение при размещении всего кода в первом кадре возникает в случае предварительной загрузки клипов. В приложении с предзагрузкой клипов размещение всего кода в первом кадре может быть невозможным. Но все равно нужно стремиться к централизации кода.

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

Помните, что функции и объекты, созданные программными методами ActionScript, существуют на протяжении всего клипа. Вместе с этим продолжает действовать механизм создания и уничтожения мувиклипов, базирующийся на состояниях временной диаграммы. Временная диаграмма должна отражать эту взаимосвязь.


Рисунок 2
: Пример временной диаграммы ("таймлайна") с предзагрузчиком.

^ Используйте файлы #include .as 

Любой определенный вами объект или библиотека созданных вами функций должны определяться во внешнем ActionScript файле и использоваться в качестве файла включаемого (include) файла. Например, если приложение использует объекты с именами "Foo" и "Bar", каждый из этих объектов должен содержаться в отдельном включаемом ActionScript-файле. Имя включаемого файла должно соответствовать имени объекта, например:

Foo.as
Bar.as

Библиотеки многократно используемых функций должны также определяться во включаемых файлах ActionScript. В этом случае имя включаемого файла должно состоять из букв нижнего и верхнего регистра (начинаясь с буквы нижнего регистра), например:

stringUtils.as

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

Кроме того, используя внешние файлы ActionScript, разработчики могут интегрировать файлы кода с системой управления версиями, например, такими, CVS или SourceSafe. Это облегчает отслеживание исходного кода.

^ Кадры как состояния приложения 

Разработчики часто пишут построчный код (программу) прямо на отдельных кадрах, чтобы определять состояния приложения. Такая практика нежелательна.

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

Продолжая организацию приложения, создайте в клипе два слоя с кодом. В первом кадре первого слоя, существующего по всей длине клипа, располагается самая большая часть кода. Второй слой содержит действия, необходимые ключевым кадрам для изменения состояний приложения. Единственный код в каждом ключевом кадре второго слоя должен быть вызовом функции для конкретного состояния (вызываемая функция должна быть описана в первом кадре первого слоя). Для создания некоторых состояний (например, для вызовов диалоговых окон) допускается использование мувиклипов, присоединенных с помощью действия attachMovie во время выполнения приложения.

^ Избегайте размещения кода на мувиклипах и кнопках 

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

myButton.onMouseDown = function() {
    _parent.doMouseDown(this);
}

Использование вызова функции переносит всю функциональность на основной таймлайн мувиклипа.

Инициализация 

Инициализация приложения используется для задания его начального состояния. Функция инициализации вызывается в приложении в первую очередь и только один раз — программой. Все остальные вызовы этой функции должны управляться событиями.

// кадр 1
this.init();
function init() {
    if (this.inited != undefined)
        return;
    this.inited = true;
    // здесь идет код инициализации...
}

^ Используйте ключевое слово var для локальных переменных 

Все локальные переменные должны использовать ключевое слово var. Это предохраняет переменные от глобального доступа и, что более важно, предохраняет переменные от неумышленного переназначения[3]. Например, следующий код функции не использует ключевое слово var при объявлении переменной, что приводит к (неумышленной) перезаписи внешней переменной, не относящейся к функции:

counter = 7;

function loopTest()
{
    trace(counter);
    for(counter = 0; counter < 5; counter++)
    {
        trace(counter);
    }
}

trace(counter);
loopTest();
trace(counter);

Этот код выводит:

7
7
0
1
2
3
4
5

В данном случае переменная counter, находящаяся на основной временной диаграмме, переназначается переменной counter, которая находится внутри функции. Ниже приведен исправленный код, который использует ключевое слово var, для объявления обеих переменных. Использование декларации var в функции устраняет ошибку вышеуказанного кода:

var counter = 7;

function loopTest()
{
    trace(counter);
    for(var counter = 0; counter < 5; counter++)
    {
        trace(counter);
    }
}

trace(counter);
loopTest();
trace(counter);

Исправленный код выводит следующее:

7
7
0
1
2
3
4
7

Из последней строки видно, что не принадлежащая функции переменная counter сохранила свое значение после вызова функции.

^ Создание объектов 

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

Пример лучшей практики создания объекта:

MyObject = function()
{
}

MyObject.prototype.name = "";
MyObject.prototype.setName = function(name)
{
    this.name = name;
}

MyObject.prototype.getName = function()
{
    return this.name;
}

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

MyObject = function()
{
    this.name = "";
    this.setName = function(name)
    {
        this.name = name;
    }

    this.getName = function()
    {
        return this.name;
    }
}

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

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

^ Наследование объектов 

Задание свойства "__proto__" для создания наследования практиковалось в Flash Player 5. Эта практика не поддерживается в Flash Player 6, и ее использование не рекомендуется. Свойство __proto__ должно рассматриваться как свойство только для чтения (read-only). Правильный способ создания наследования — это создание цепочки прототипов. Чтобы создать цепочку прототипов, установите свойство "prototype" функции конструктора подкласса (subclass) в экземпляр надкласса (superclass), используя следующий синтаксис:

ChildClass.prototype = new ParentClass();

Пример этой практики:

function Shape()
{
}
function Rectangle()
{
}
Rectangle.prototype = new Shape();

Следующая практика НЕ рекомендуется:

Rectangle.prototype.__proto__ = Shape.prototype;

Если разработчики беспокоятся, что такая форма наследования приведет к тому, что весь конструктор будет признан необязательным, следующий код поможет предотвратить это:

_global.SuperClassConstructor = function() {
    if (this._name!=undefined) {
        // код конструктора размещается здесь
    }
}

В вышеприведенном примере код конструктора не будет выполнен, потому что еще не определен экземпляр. Заметьте, что этот код работает только в классах, основанных на классе MovieClip.

Производительность 

Предварительная загрузка 

Главная проблема создания компонентов, хорошо согласовывающихся с процессом предварительной загрузки — это минимизация количества объектов, загружающихся перед первым кадром. Символы в первом кадре загружаются прежде, чем в проигрывателе сможет отобразиться какая-либо графика. Это означает, что даже компонент прелоадера не появится, пока не будут загружены все символы с пометкой "Export in First Frame" (экспортировать в первом кадре). Поэтому любой код ActionScript, обрабатывающий действия пользователя, должен всегда помещаться в кадре, следующем после кадра с прелоадером.

^ Типы данных и их размеры в файлах .swf 

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


Таблица 2: Основные объекты ActionScript

frame3 

Таблица 3: Простые .swf-файлы

frame5 

Таблица 4: Объекты компонентов (по одному экземпляру)

frame7^ Предосторожности использования оперативной памяти 

Текст. Каждый отдельный текстовый объект использует 10 КБ памяти. Это относится к динамическим текстовым полям, полям для ввода текста и статическим текстовым полям, использующим шрифты устройств ("device fonts"), например, "_sans".

Мувиклип. Каждый мувиклип использует около 1 КБ памяти. Это число может стремительно возрастать при увеличении количества используемых мувиклипов. Имейте в виду, что графические символы (graphic) не обладают такими высокими требованиями к памяти, как мувиклипы.

^ Объекты функций. Каждый объект функции создает два объекта ActionScript, вместе занимающие 700 байтов. Создание объекта функции для каждого экземпляра объекта — дорогое удовольствие с точки зрения расхода памяти. Рекомендуется всегда использовать прототипы. Прототипы создаются только один раз и помогают избежать неоправданного расходования памяти.

Вывод 

Этот документ не является завершенным набором лучших методов создания кода. Macromedia продолжает расширение документа, основываясь на информации от людей, создающих и продвигающих критически важные по своему значению приложения для Flash Player. Этот документ живой, он управляется сообществом разработчиков, как это всегда было с ActionScript и Macromedia Flash Player с самого начала их существования.


Модель событий Flash MX

20.07.2002 — 24.09.2002

Одна из моих любимых особенностей Flash MX — новая модель событий, она просто делает жизнь настолько легче, а процесс написания кода — увлекательнее и настолько организованнее.. Если вы мало знали о модели событий — сейчас самое время понять, как много вы теряете, но, несомненно, Вы уже используете ее, даже не осознавая этого. Эта статья, будем надеяться, поможет каждому читателю понять модель событий flash и эффективно ее использовать, независимо от того, начинающий вы или уже супер flash-программер. Я считаю, что сравнение предмета с чем-то, имеющим отношение к человеку в его повседневной жизни — это лучший способ объяснить что-то новое так, чтобы человек это усвоил; нужна Реальная Аналогия с миром, так что эта статья использует аналогии, чтобы объяснить некоторые понятия..

^ Что вам нужно знать:

Чтобы понять объяснения и термины, используемые в этой статье, вам нужно знать определенные вещи о flash: во-первых, нужно понимать, что flash сегодня — Объектно-ориентированный и, следовательно, вы должны уже понимать основы объектно-ориентированного программирования в Flash; если вы можете ответить на следующие — можете продолжить чтение этой статьи и, скорее всего, вам все будет понятно, в противном случае следует посетить этот отличный сайт, дающий глубокое объяснение объектно-ориентированного программирования во flash:
Роберт Дебройль


Что такое объект?
Что такое метод?
Что такое свойство?
Что такое встроенные объекты Flash?
Какова разница между функцией и методом?
Какова разница между переменной и свойством?

^ Модель событий:

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

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

Таким образом, в терминах Actionscript модель событий — это внутренняя работа Flash Player'а, направленная на то, чтобы оповещать флэш-клип, когда происходит что-то важное.

Событие:

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

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

Итак, в терминологии ActionScript, событие — это сообщение, возникающее в ответ на некое действие или изменение состояния; например, нажатие клавиши, перемещение мышки или окончание загрузки XML-документа.

^ Обработчик События:

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

Обработчик события - это инструкция, которую вы определяете для определенных пользователем объектов; инструкция говорит, что должен делать объект, когда происходит определенное событие.

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

^ Категории Событий:

Новостная лента FP разбита на два разных отдела, которые работают с разными событиями. Они известны как объекты, любой встроенный AS объект типа Key, Mouse или Movieclip имеет своих репортеров, имеющих большой опыт в наблюдении событий, важных для соответствующего объекта. Например, репортер объекта Mouse занят только оповещением головного офиса Mouse, когда левая клавиша мышки была нажата, когда — отпущена, а когда мышка двигалась. Когда происходит одно из этих событий, репортер сообщает о нем в головной офис Mouse, который сразу после этого распространяет событие через новостную ленту.

Список событий, за которым обязаны наблюдать репортеры разных отделов, имеется в словаре скрипта ActionScript dictionary.

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

Описание События / Обработчик События

Движение мыши/onMouseMove
Левая кнопка мыши нажата/onMouseDown
Левая кнопка мыши отпущена/onMouseUp
Клавиша нажата/onKeyDown
Клавиша отпущена/onKeyUp

Итак, выражаясь языком AS, каждый из Встроенных Объектов, таких как Mouse, Key и Movieclip имеет свой набор относящихся к нему событий. Нет смысла объекту Key содержать события, относящиеся к объекту Mouse..

^ Слушатели (Listeners):

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

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

^ Использование Методов Слушателей (Listener Methods):

Есть методы, позволяющие нам регистрировать наши интересы или отказываться от их регистрации в рассылках новостей от новостных отделов. Чтобы зарегистрировать объект как заинтересованный в отделе новостей, мы используем метод addListener, а чтобы аннулировать регистрацию интересов объекта в отделе новостей, мы используем метод removeListener. Приведем процесс, через который мы должны пройти, чтобы зарегистрировать наши интересы в получении рассылки новостей от отделов новостных бюллетеней, в этом примере наш объект заинтересован в рассылке от объекта Mouse:

//создаем новый пустой объект
myobject=new Object()
//регистрируем наш интерес в рассылке объекта Mouse
Mouse.addListener(myobject);

А вот что нужно сделать для отмены регистрации нашего объекта в рассылке от Mouse:

Mouse.removeListener(myobject);

Говоря языком AS, теперь, когда бы ни произошло событие Мыши, объект с именем "myobject" будет оповещен о том, что произошло событие Мыши и о том, какое именно это событие.

^ Добавление обработчиков событий к объектам:

Мы должны сообщить пустому созданному нами объекту с именем "myobject" что делать при осуществлении определенного события, о котором он узнает из новостей от новостного отдела объекта Mouse, и, как вы понимаете, мы должны определить обработчики события для объектов. Для определения обработчика события, который будет выводить слова "Мыша двинулась (в AS смысле:)" в окно "Output" каждый раз при движении мыши, мы используем обработчик событий onMouseMove, как показано далее:

//создаем новый пустой объект
myobject=new Object();
//регистрируем наш интерес в рассылке новостей от объекта Mouse
Mouse.addListener(myobject);
//определяем для нашего объекта обработчик события onMouseMove
myobject.onMouseMove=function(){
trace("Мыша двинулась (в AS смысле:)");
}

Давайте будем умными и при нажатии клавиши выведем слова "Клавиша нажата" в окно "output" путем регистрации интереса нашего объекта в рассылке новостей от новостного отдела Key; используем для этого обработчик события onKeyDown:

//создаем новый пустой объект
myobject=new Object();
//регистрируем наш интерес в рассылке от Mouse
Mouse.addListener(myobject);
//определяем для нашего объекта обработчик события onMouseMove
myobject.onMouseMove=function(){
trace("Мыша двинулась (в AS смысле:)");
}
//а теперь регистрируем наш интерес в рассылке от объекта Key
Key.addListener(myobject)
//определяем обработчик события onKeyDown для нашего объекта
myobject.onKeyDown=function(){
trace("Клавиша нажата");
}

Давайте объясним с точки зрения AS, что происходит, когда пользователь нажимает на кнопку мыши. Когда бы он ни нажал, объект Mouse сообщает объекту с именем myobject, что произошло событие onMouseEvent, и затем запускается обработчик события, который в свою очередь выполняет код, выводящий слова "Мыша двинулась (в AS смысле:)" в окно "Output".

^ Мувиклипы (Movieclip) и Кнопки (Button) слушают автоматически:

Как было упомянуто выше, чтобы объект получил уведомление о событии, он должен быть зарегистрирован во встроенном объекте ActionScript, обеспечивающем связь с этим событием. Начиная с Flash 5, Мувиклипы являются объектами-наследниками класса Movieclip, а сейчас, в Flash MX, Кнопки таким же образом наследуют класс Button. Все экземпляры класса Movieclip автоматически зарегистрированы как заинтересованные в рассылке новостей от Movieclip, и все экземпляры класса Button автоматически зарегистрированы как заинтересованные в рассылке новостей от Button. Это означает, что вам не нужно явным образом использовать метод addListener для того, чтобы мувиклип был оповещен о каком-либо событии, связанном с Movieclip, то же самое верно и для Кнопок. Благодаря этому возможно следующее:

//создаем новый мувиклип на таймлайне _root
_root.createEmptyMovieClip(“mymovieclip”,1)
//определяем обработчик события "onMouseMove" для нашего мувиклипа
_root.mymovieclip.onMouseMove=function(){
//двигаем этот мувиклип за мышкой
this._x=_root._xmouse;
this._y=_root._ymouse;
}

Итак, объясним языком AS, что происходит, когда пользователь двигает мышь. Когда бы он ни сделал это, Movieclip объект с именем "mymovieclip" оповещается о том, что произошло событие мыши, и запускается обработчик события onMouseMove, который в свою очередь выполняет код, перемещающий мувиклип в позицию мышки.

Все мувиклипы автоматически получают сообщения от Key, Stage и Mouse.

^ Модель событий Flash 5:

Во Flash 5 была введена базовая модель событий для мувиклипов и кнопок, отсюда произошел обработчик событий "onClipEvent". Вы помните, как в последнем примере мы заставили мувиклип двигаться за мышкой, когда она сама двигалась, а теперь давайте посмотрим, что нам нужно было бы сделать, чтобы достичь того же результата, используя старую модель событий Flash 5; нам нужно было бы поместить следующий код вне мувиклипа, который мы хотим двигать:

onClipEvent(mouseMove){
this._x=_root._xmouse;
this._y=_root._ymouse;
}

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

on(press){
trace("Мою кнопку кто-то нажал");
}

Вышеприведенный код может быть написан во Flash MX с использованием новой модели событий, например так:

Yourbutton.onPress=function(){
trace("Кто нажимал на мою кнопку?!?");
}

Вы можете продолжать использовать старую модель событий Flash 5 при программировании в Flash MX в целях обратной совместимости, это не запрещено официально Macromedia, но имхо вы должны осознавать, что происходит на самом деле, и что вы теряете. Нет абсолютно никаких преимуществ в использовании старой модели событий.

^ Flem в Flash MX больше не нужен:

Branden Hall создал модель событий в форме ActionScript extension, называемого "Flem" в самом начале существования Flash 5. Она предоставляла вам те же возможности, которые сейчас предоставляет встроенная модель событий Flash MX, использование этой библиотеки теперь не актуально.

^ Преимущества использования новой модели событий:

Первое, что вы получаете при использовании модели событий Flash MX как оппонента старой модели событий — это возможность изменять обработчики событий в любой момент времени, изменяя функцию, выполняющуюся в ответ на событие. Также в силу того, что теперь обработчик события является просто свойством объекта, он также может быть удален, что экономит ресурсы процессора, что было невозможно во Flash 5 без изобретения массы ненужных трюков и ухищрений. Теперь можно сосредоточиться на главном. В Flash 5 вы не могли присоединить мувиклип из библиотеки, используя метод attachMovie, а затем повесить на этот мувиклип обработчик события, потому что обработчик событий onClipEvent() должен был быть определен на мувиклипе еще в процессе разработки, но не в ходе выполнения скрипта. Теперь очень просто сделать это в Flash MX. Наконец, новая модель событий Flash MX намного яснее, легче в использовании и организованнее, чем старая модель событий, предлагаемая во Flash 5.




Скачать файл (21152.1 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru