Logo GenDocs.ru

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

Загрузка...

Курс лекции по дисциплине Современные программные средства - файл 07. Отладка во Flash 5.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скачать

07. Отладка во Flash 5.doc

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

Отладка

(статья написана для FLASH-5.

Во FLASH-6 появился настоящий отладчик, работа с которым здесь не описывается)

Содержание:


Средства отладки
Методика отладки
Вперед!

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

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

http://www.macromedia.com/support/flash/ts/documents/oldplayers.htm

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

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

Для успешной отладки требуется логика и дисциплина при проведении исследований, а также достаточное владение необходимыми средствами. В этой главе будут вкратце рассмотрены основы инструментов отладки и некоторые общие приемы для решения проблем с кодом. Запомните, что для отладки характерно постоянное оспаривание предположений, которые мы делаем. Какая-то проблема часто обусловлена совсем другой более общей проблемой (болезнью). Средства отладки применяются для того, чтобы выяснить, действительно ли код выполняет то, что задумано, а это приводит к пониманию и исправлению проявившейся ошибки (симптома).
^

19.1. Средства отладки


В ActionScript имеются следующие инструменты для отладки:

  • Функция trace( )

  • Команда List Variables

  • Команда List Objects

  • Профайлер (Bandwidth Profiler)

  • Отладчик (Debugger)

Все эти средства используются в режиме тестирования. Чтобы войти в режим тестирования, нужно экспортировать Flash-ролик из редактора с помощью команды Control Test Movie (Ctrl + Enter).

Кроме этих формальных средств отладки есть сообщения об ошибках, которые Flash отправляет в окно Output во время экспорта ролика или при выполнении команды Check Syntax (проверка синтаксиса). Check Syntax - это команда, выводимая при нажатии кнопки со стрелкой в правом верхнем углу панели Actions. Сообщения об ошибках часто указывают точную причину проблемы, вплоть до номера строки исходного кода, которым она вызвана. Полное объяснение всех сообщений об ошибках есть в фирменном руководстве компании Macromedia по ActionScript или в справочной системе ActionScript Reference Guide.

Обратите внимание на то, что не все ошибки влекут вывод сообщений. Например, если при вычислении получается неверный результат, то это программная ошибка, хотя и не вызывающая аварийного завершения работы браузера. Кроме того, есть два типа сообщений об ошибках: так называемые сообщения об ошибках этапа компиляции (compile-time), возникающие при попытке экспорта сценария, и так называемые ошибки времени исполнения (runtime), которые возникают только тогда, когда Flash-ролик воспроизводится и достигает той точки, в которой генерируется ошибка.

Ошибки этапа компиляции указывают на какие-то синтаксические ошибки, например, отсутствие скобок или закрывающей кавычки. Обращайтесь к части III "Справочник по языку", чтобы узнать точный синтаксис каждой команды, или к главе 14 "Лексическая структура" за разъяснением правильного синтаксиса ActionScript.

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

В итоге мы приходим к важной технологии - оборонительному программированию. Множество реальных и потенциальных ошибок можно избежать, если всегда проверять ситуации, чреватые проблемами, которые называют контролем ошибок (error checking) либо, иногда, проверкой данных (data validation), если это относится к вводу, производимому пользователем. Например, прежде чем выводить вопросы вопросника, можно убедиться в том, что эти вопросы правильно загрузились. Можно проверить и каждый вопрос, чтобы быть уверенным в правильности его формата для вывода. Если полученные данные были введены неверным образом, следует вывести соответствующее сообщение об ошибке, которое позволит программисту или пользователю предпринять корректирующие действия.
^

19.1.1. Функция trace( )


В ActionScript мощнейшее средство выявление ошибок является также и простейшим: это функция trace( ). Как демонстрировалось на протяжении всей этой книги, функция trace( ) направляет значение выражения в окно Output в режиме тестирования. Например, если добавить в ролик такой код:

trace("hello world");

то в окне Output появится текст "hello world". Аналогично трассируется значение переменной:

var x = 5;

trace(x); // Выводит 5 in в окно Output

С помощью функции trace( ) можно проверять состояние переменных, свойств и объектов и тем самым отслеживать ход выполнения кода. Источник проблемы часто можно обнаружить при проверке результата каждой операции сценария. Например, допустим, что некоторая функция должна возвращать значение, но с помощью команды trace( ) обнаруживается, что возвращается значение undefined (которое никак не выводиться в окно Output). В результате становится ясно, что нужно внимательно рассмотреть функцию и проверить, правильно ли в ней используется команда return для возврата осмысленного значения.
^

19.1.2. Команда List Variables


При воспроизведении Flash-ролика в режиме тестирования можно проверить значения текущих переменных, определенных в нем, с помощью команды Debug List Variables. Команда List Variables сообщает имена и местонахождение всех переменных, активных в ролике в данный момент, а также их значения. Так как функции и мувиклипы хранятся в переменных, команда List Variables показывает также функции и мувиклипы, имеющиеся в ролике.

В примере 19-1 приведен образец вывода после выполнения команды List Variables. Обратите внимание, что переменная rate показана как объявленная, но не определена undefined. Такие детали иногда трудно обнаружить с помощью функции trace( ), поскольку trace( ) преобразует значение undefined в пустую строку ("").
^

Пример 19-1. Образец выдачи команды List Variables


Level #0:

Variable _level0.$version = "WIN 5,0,30,0"

Variable _level0.calcDist = [function]

Variable _level0.deltaX = 194

Variable _level0.deltaY = 179

Variable _level0.rate = undefined

Variable _level0.dist = 264

Movie Clip: Target="_level0.clip1"

Movie Clip: Target="_level0.clip2"

Обратите внимание, что обе команды - trace( ) и List Variables - дают только мгновенный снимок. Часто требуется следить за изменением переменной во времени или проверять изменение многократно. Следить за изменениями переменных позволяет отладчик (Debugger),который будет обсуждаться позднее.
^

19.1.3. Команда List Objects


Команда List Objects создает каталог текста, фигур, графических изображений и мувиклипов, определенных в ролике. Чтобы выполнить ее, выберите из главного меню Debug List Objects, находясь в режиме тестирования. Обратите внимание, что List Objects не показывает объекты данных (экземпляры класса). О них сообщает команда List Variables.

В примере 19-2 приведен образец выдачи команды List Objects. Обратите внимание на явную пометку текстовых полей, которые могут редактироваться, и показ экземпляров мувиклипов с автоматическими именами (например, _level0.instance1).
^

Пример 19-2. Образец выдачи List Objects


Level #0: Frame=1

Shape:

Text: Value = "variables functions clip events startDrag stopDrag Math"

Text: Value = "this movie demonstrates a little math, variables, movie clip events"

Text: Value = "draggable distance"

Text: Value = "calculator"

Movie Clip: Frame=1 Target="_level0.instance1"

Shape:

Text: Value = "distance between clipstotal:horizontal:vertical:"

Edit Text: Variable=_level0.dist Text="222"

Edit Text: Variable=_level0.deltaX Text="174"

Edit Text: Variable=_level0.deltaY Text="138"

Movie Clip: Frame=1 Target="_level0.obj1"

Shape:

Movie Clip: Frame=1 Target="_level0.obj2"

Shape:

Опять-таки, List Objects предоставляет только мгновенный снимок в данный момент времени. Чтобы получить текущее значение объектов после их изменения, команду нужно выполнить снова.
^

19.1.4. Профайлер (Bandwidth Profiler)


Профайлер Bandwidth Profiler используется для моделирования загрузки Flash-ролика при разных скоростях модема. С помощью Bandwidth Profiler можно измерить производительность ролика, проверить код предварительной загрузки и проследить за положением воспроизводящей головки (Playhead) на главной шкале времени (Main Timeline). Включить Bandwidth Profiler можно следующим образом:

  1. Находясь в режиме тестирования из главного меню выбрать View Bandwidth Profiler.

  2. В меню Debug выбрать нужную скорость загрузки.

  3. Для моделирования загрузки ролика на этой скорости выбрать в меню View Show Streaming.

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

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

ПРЕДУПРЕЖДЕНИЕ


Отображение элементов в окне Output происходит очень медленно по сравнению с "невидимыми" операциями ActionScript. Если простой ролик кажется чрезмерно прерывистым, попробуйте отключить все предложения trace( ) или воспроизвести ролик в режиме, отличном от режима тестирования.

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

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

  • Не следует дожидаться в цикле совершения некоторого события. Ожидание может оказаться долгим или событие вообще никогда не произойдет, а производительность снизится или предложение окажется заблокированным. Вместо этого используйте обработчики событий, такие как on (load), запускаемые при возникновении или завершении некоторого события.

  • При каждой возможности обобщайте свой код, возможно, даже используя для этого интеллектуальные клипы (Smart Clips). Например, вместо двух почти идентичных процедур по 5 Кбайт можно написать одну более общую процедуру и вызывать ее дважды с разными параметрами, что позволит сэкономить 5 Кбайт. Об обобщении кода рассказывается в главе 9 "Функции", а интеллектуальные клипы обсуждаются в главе 16 "Среда редактирования ActionScript".

  • Если используется Flash 5 Player, а оптимальная работа ActionScript для всего проекта критична, попробуйте использовать вместо новейших технологий прежний синтаксис в стиле Flash 4. Во Flash 5 некоторые операции осуществляются быстрее, если сформулировать их в синтаксисе Flash 4. Например, функция Flash 4 substring( ) быстрее, чем методы substring( ) и substr( ) Flash 5, а Tell Target из Flash 4 быстрее, чем точечная запись Flash 5.

  • Экспортируйте Flash-ролики, удаляя предложения trace( ) путем задания опции File Publish Settings Flash Options Omit Trace Actions.

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

  • Перечень общих приемов оптимизации Flash можно найти по следующему адресу: http://www.macromedia.com/support/flash/publishexport/stream_optimize/stream_optimize.html.

19.1.5. Отладчик


Отладчик (Debugger) служит весьма полезным инструментом, который предоставляет организованный доступ к значениям свойств, объектам и переменным Flash-ролика и даже позволяет изменять значения переменных на этапе исполнения.

Чтобы включить отладчик, в среде разработки Flash из главного меню выберите Control Debug Movie (не в режиме тестирования). Отладчик можно использовать и в браузере, при условии что:

  • Просматриваемый ролик был первоначально экспортирован с разрешенной отладкой.

  • Flash Player, используемый для просмотра ролика, поддерживает отладку.

  • Во время отладки программа Flash запущена.

Чтобы экспортировать ролик с разрешением отладки в браузере, выберите File Publish Settings Flash Debugging Permitted, после чего можно задать пароль для защиты своего кода от любопытствующих глаз. Чтобы установить в браузере Flash Player с поддержкой отладки, воспользуйтесь программами установки из папки Debug (Macromedia/Flash 5/Players/Debug/), куда была установлена программа Flash. Для включения отладки во время просмотра ролика щелкните по нему правой кнопкой мыши (Windows), или Ctrl + щелчек (Macintosh) и выберите Debugger.

СОВЕТ


Не для всех версий Flash Player есть соответствующий Player с поддержкой отладки. Поищите на сайте поддержки компании Macromedia http://www.macromedia.com/support/flash новейшую версию Flash Player с поддержкой отладки.

В верхней части отладчика (Display List) показывается иерархия мувиклипов. Для исследований свойств и переменных конкретного мувиклипа выделите его в Display List. В нижней части отладчика есть три закладки - Properties, Variables и Watch, которые динамически обновляются, показывая свойства и переменные выделенного мувиклипа. Чтобы задать значение свойства или переменной, дважды щелкните по значению и введите новые данные. Чтобы выделить один или несколько элементов для удобства просмотра, выделите их на вкладке Properties или Variables, после чего выберите Add Watch при помощи кнопки со стрелкой в правом верхнем углу отладчика. Все "контролируемые" переменные будут добавлены во вкладку Watch (она позволяет одновременно просматривать переменные разных мувиклипов).

Дополнительные данные относительно механизма использования отладчика ищите в подробной документации компании Macromedia в разделе "Troubleshooting ActionScript" справочного руководства ActionScript Reference Guide. Если вы потеряли свое справочное руководство, то его можно взять на сайте компании Macromedia по адресу:

http://www.macromedia.com/support/flash

или в меню Help программы Flash.
^

Методика отладки


Взглянем кратко на некоторые приемы, используемые при отладки кода. Отладка может быть разбита на три отдельных этапа:

  • Обнаружение ошибок

  • Выявление источника ошибки

  • Исправление ошибок
^

19.2.1. Обнаружение ошибок


Очень часто проблемы кода выявляются в процессе активного программирования. Это означает, что пишется некий код, тестируется Flash-ролик, и оказывается, что он работает не так, как нужно. Проблема обнаружена.

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

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

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

  1. Ввести 0 в качестве количества лет.

  2. Щелкнуть по кнопке Calculate (Вычислить).

  3. В поле Results (Результат) вместо суммы в рублях выводится "NaN".
^

19.2.2. Выявление источника ошибки


Признание наличие ошибки является лишь началом пути к ее устранению. Первейшей задачей является выяснение источника ошибки, как бы высоко он ни находился. Ошибку можно представлять себе как сердечный приступ, причиной которого может быть нарушение режима питания, происходившее за годы до него. Сердечный приступ служит просто наиболее явственно проявившимся симптомом, а в исправлении нуждается нечто более ранее в процессе. Большинство ошибок вызывается ложными предположениями: мы предполагаем, что правильно ввели имя переменной, хотя это не так, или что в текстовом поле находятся числовые данные, а их там нет. Путем выполнения ряда предложений trace( ), команд отладчика или команды List Variables можно сравнить наши предположения с тем, как интерпретатор воспринимает наш код.

Вот, например, код, содержащий ошибку. Он ошибочно присваивает переменной status строку "equal":

var x = 11;

isTen(x);

function isTen(val) {

if (val = 10) {

status = "equal";

}

}

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

// Переменная x должна быть равной 11

var x = 11;


// Посмотрим, происходит ли это в действительности

trace(x); // Выводит: 11


// Здесь должна быть вызвана функция isTen( )

isTen(x);


// Теперь обратимся к нашей функции

function isTen(val) {

// Проверим, действительно ли функция вызывается

trace("Функция isTen вызвана"); // Выводит: "Функция isTen вызвана"


// Проверим, правильно ли передан параметр

trace("Параметр val равен " + val); // Выводит: "Параметр val равен 11"

Остановимся на мгновение. Обратите внимание, что пройден почти весь код, и пока что все работает так, как и предполагалось. Переменная задана правильно, функция isTen( ) вызвана и получила правильный параметр.

СОВЕТ


Многие ошибки происходят потому, что код, который, как нам кажется, выполнялся, вообще не был достигнут! С помощью предложений trace( ) можно убедиться, что вход в некоторый участок кода был осуществлен.

Методом исключения выясняется, что проблема кода заключается либо в условном предложении if(val = 10), либо в присвоении текстовому полю status = "equal". Следующим проверяем условное предложение, выводя с помощью trace( ) значение условного выражения (предполагается true или false):

trace(val = 10);

Эврика! В окне Output выводится 10, а не true или false, как ожидалось.

При ближайшем рассмотрении выясняется, что условное выражение является присваиванием, а не сравнением! Пропущен знак равенства в операторе проверки равенства. Выражение if(val = 10) на самом деле должно иметь вид if(val == 10).

Очевидно, не все ошибки столь просты, как это условное предложение (которое является весьма распространенной ошибкой), но использованный подход применим в большинстве случаев поиска ошибки: выполнить ряд функций trace( ), чтобы создать текущий пошаговый отчет о фактическом выполнении кода и использовать отладчик, как советует Macromedia.
^

19.2.3. Часто встречающиеся причины программных ошибок


В таблице 19-1 перечислены некоторые часто встречающиеся причины программных ошибок в ActionScript.

Таблица 19-1. Ошибки, встречающиеся в ActionScript


Ошибка

Описание

Неверное расположение кода

Всякий код должен быть прикреплен к мувиклипу, кадру или кнопке. Следите, чтобы код был прикреплен туда, куда нужно, по заголовку панели Actions: если код прикреплен к кадру, заголовок панели будет Frame Actions; если код прикреплен к мувиклипу или кнопке, заголовок будет Object Actions. Если нужно расположить код в каком либо конкретном кадре, в начале написания кода следите за тем, чтобы этот кадр был выделен на шкале времени (Timeline) и чтобы этот кадр был ключевым. Если нужно, чтобы код был прикреплен к мувиклипу или кнопке, обеспечьте выделение соответствующего объекта на сцене перед началом ввода кода. Чтобы точно проследить, куда прикрепился, воспользуйтесь панелью Movie Explorer (Window Movie Explorer).

Отсутствие обработчика события

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

onClipEvent (событие) {

// предложения

}

Для кнопок:

on (событие) {

// предложения

}

где событие является именем обрабатываемого события. Ошибка "Statement must appear within on handler" указывает на отсутствие обработчика события. См. главу 10 "События и обработчики событий".

Неправильная ссылка на мувиклип

Ссылка на мувиклип, который не существует или имеет неверный формат. Проверьте, всем ли экземплярам даны имена и соответствуют ли эти имена указанным ссылкам. См. раздел 13.5.3 "Ссылки на вложенные мувиклипы" в главе 13 "Мувиклипы".

Непредусмотренное преобразование типа данных

Неожиданный результат преобразования данных. Например, 3 + "4" дает строку "34", а не число 7. Аналогично строка "true" преобразуется в булево значение false! См. правила преобразования типов данных в главе 3 "Данные и типы данных". Проверяйте типы данных с помощью оператора typeof.

Отсутствие точки с запятой

Предложение преждевременно завершено из-за отсутствия точки с запятой. О том, как правильно использовать точку с запятой, читайте в главе 14 "Лексическая структура".

Неверный символ кавычки

Строка содержит не преобразованный в escape-последовательность символ, конфликтующий со строковым литералом. См. раздел 4.5.2 "Строковые литералы" в главе 4 "Элементарные типы данных".

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

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

Проблемы области видимости

Ссылка на переменную, свойство или функцию не учитывает область видимости. Например, предложение в обработчике мувиклипа пытается вызвать функцию, областью видимости которой является шкала времени родителя этого мувиклипа. См. раздел 10.7 "Область видимости обработчика событий" в главе 10 "События и обработчики событий", раздел 2.5 "Область видимости переменных" в главе 2 "Переменные" и раздел 9.6 "Доступность и срок жизни функций" в главе 9 "Функции".

Смешение глобальной функции с методом

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

Не загружено содержимое

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

Неверное использование заглавных букв

В некоторых ключевых словах ActionScript учитывает регистр букв. Если ошибочно записать onClipEvent как onclipevent, ActionScript решит, что вызывается пользовательская функция onclipevent, а не используется ключевое слово встроенного обработчика события onClipEvent. В результате будет сообщено об ошибке при обнаружении { в начале блока предложений onClipEvent (интерпретатор ищет точку с запятой, обозначающую конец того, что он считает вызовом функции onclipevent). См. раздел 14.6 "Чувствительность к регистру" в главе 14 "Лексическая структура".
^

19.2.4. Исправление ошибок


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

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

  • Не бойтесь переписывать код заново. Во многих случаях лучшим способом исправить очень сложный код будет повторное проектирование системы и написание кода сначала. Повторное написание программы почти всегда происходит более быстро и гладко, чем ее первоначальное создание. С этим согласно большинство экспертов (например, в Quake III ядро Quake II было полностью переписано). При этом новый код все равно нуждается в отладке. Не выбрасывайте вполне пригодный код, когда срок завершения работы уже близок. Оставьте то, что хорошо работает, и перепишите только код, вызывающий проблемы.

  • Выделите проблематичные компоненты в отдельные тестовые Flash-ролики. Работайте над каждой составляющей системы, а затем объединяйте работающие части по одной.

  • Пусть ваш код посмотрит коллега. Не бойтесь. Любой программист стыдится кода, написанного их годом раньше.

  • Обратитесь за помощью к одному из ресурсов, приведенных в приложении A "Ресурсы". Например, почтовый список рассылки FlashCoders посвящен исключительно вопросам ActionScript.

Множество добрых советов по технике программирования можно найти в книгах Extreme Programming Explained Кента Бека (Kent Beck) издательства Addison Wesley и Code Complete Стива Макконнелла (Steve McConnell) издательства Microsoft Press.




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

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

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