Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Macromedia Flash Professional 8. Π“Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ анимация». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 92

Автор Π’. Π”Ρ€ΠΎΠ½ΠΎΠ²

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ MovieClip прСдоставляСт доступноС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния свойство _droptarget, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π΅ ссылку Π½Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ "Ρ†Π΅Π»ΡŒ" ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ "drag'n'drop" β€” Π½Π° ΠΊΠ»ΠΈΠΏ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» "Π±Ρ€ΠΎΡˆΠ΅Π½" пСрСтаскиваСмый ΠΊΠ»ΠΈΠΏ. МоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ этим свойством, ΠΈ, Π² зависимости ΠΎΡ‚ Π½Π΅Π³ΠΎ, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ пСрСтаскивания.

Π—Π΄Π΅ΡΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто нСбольшоС Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠ΅. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ свойство _droptarget Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² особом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, примСняСмом Π² старых вСрсиях Flash (это вСрсии 1–4). Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ называСмая "запись со слэшСм", ΠΊΠΎΠ³Π΄Π° Π² качСствС раздСлитСля ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π΅ΠΌ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ свойства ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ косая Ρ‡Π΅Ρ€Ρ‚Π° (/), Π° Π½Π΅ Ρ‚ΠΎΡ‡ΠΊΠ°. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ "запись со слэшСм" Π² Π·Π½Π°ΠΊΠΎΠΌΡƒΡŽ Π½Π°ΠΌ "запись с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ", Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнной Π²ΠΎ Flash Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ evai.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ сцСнарии-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий mouseDown ΠΈ mouseUp Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ позволяли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ "Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ" пСрСтаскиваСмый ΠΊΠ»ΠΈΠΏ Π² ΠΊΠ»ΠΈΠΏ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ forbiddenArea. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

onClipEvent(mouseDown) {

this.startDrag(false);

oldX = this._x;

oldY = this._y;

}

onClipEvent(mouseUp) {

if (eval(this._droptarget)!= _root.forbiddenArea) {

this._x = _root._xmouse;

this._y = _root._ymouse;

} else {

this._x = oldX;

this._y = oldY;

}

this.stopDrag();

}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΏΠΎΠΌΠΈΠΌΠΎ запуска ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ "drag'n'drop", сохраняСт ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ пСрСтаскиваСмого ΠΊΠ»ΠΈΠΏΠ° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… oldX ΠΈ oldY. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ², Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ» ΠΊΠ»ΠΈΠΏ Π² "Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½ΠΎΠ΅ мСсто", восстанавливаСт ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСтаскиваСмого ΠΊΠ»ΠΈΠΏΠ°. Π’ ΠΎΠ±ΠΎΠΈΡ… случаях опСрация "drag'n'drop" Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

Π’Π°ΠΊ ΠΆΠ΅ просто ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ "Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ" пСрСтаскиваСмый элСмСнт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто. Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒβ€¦

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠ³ΠΎ курсора ΠΌΡ‹ΡˆΠΈ

ΠžΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ прилоТСния (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ созданныС Π²ΠΎ Flash, Π½ΠΎ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² систСмС Windows) "Ρ‰Π΅Π³ΠΎΠ»ΡΡŽΡ‚" Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ курсорами ΠΌΡ‹ΡˆΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ выясним, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ курсор срСдствами Flash.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создали ΠΎΠ±Ρ€Π°Π·Π΅Ρ†-ΠΊΠ»ΠΈΠΏ ΠΈ нарисовали Π² Π½Π΅ΠΌ курсор ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ помСстили экзСмпляр созданного ΠΊΠ»ΠΈΠΏΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΈ Π½Π°Π·Π²Π°Π»ΠΈ Π΅Π³ΠΎ cursor. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ этот ΠΊΠ»ΠΈΠΏ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΉ курсор ΠΌΡ‹ΡˆΠΈ, привяТСм ΠΊ Π½Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ load:

onClipEvent(load) {

this.startDrag(true);

}

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ load сразу ΠΆΠ΅ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ»ΠΈΠΏΠ° Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ пСрСтаскиваСмым. ПослС этого ΠΊΠ»ΠΈΠΏ cursor Π±ΡƒΠ΄Π΅Ρ‚ всСгда ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π·Π° курсором ΠΌΡ‹ΡˆΠΈ ΠΈ фактичСски сам станСт курсором, Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ ΠΈ добивались.

Казалось Π±Ρ‹, всС Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Одно ΠΏΠ»ΠΎΡ…ΠΎ: "Ρ€ΠΎΠ΄Π½ΠΎΠΉ" курсор ΠΌΡ‹ΡˆΠΈ, рисуСмый самой систСмой Windows, ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ всю ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ. Π•Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ. Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ hide ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Mouse (ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ скрываСт систСмный курсор ΠΌΡ‹ΡˆΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события load. Он Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

onClipEvent(load) {

Mouse.hide();

this.startDrag(true);

}

Π’ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ сказанному, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ созданный Π½Π°ΠΌΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΉ курсор ΠΌΡ‹ΡˆΠΈ. Для этого достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:

this.startDrag(true, 200, 100, 600, 400);

ПослС этого наш Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΉ курсор Π±ΡƒΠ΄Π΅Ρ‚ "Π·Π°ΠΏΠ΅Ρ€Ρ‚" Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ….

ВыявлСниС совпадСний ΠΈ касаний

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, находится Π»ΠΈ заданная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ элСмСнта изобраТСния ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Π»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π΄Π²Π° элСмСнта. Π­Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° β€” выявлСниС совпадСний ΠΈ касаний β€” Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… случаях ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. И, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅Π΅ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ вСсьма нСпростоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ программистом.

Π’ нашСм случаС, ΠΎΠ΄Π½Π°ΠΊΠΎ, всС Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Flash прСдусмотрСли Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ movieClip особый ΠΌΠ΅Ρ‚ΠΎΠ΄ hitTest. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, находится Π»ΠΈ заданная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ»ΠΈΠΏΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Π»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠΏΠ°.

ΠœΠ΅Ρ‚ΠΎΠ΄ hitTest ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² позволяСт Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ совпадСниС Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΊΠ»ΠΈΠΏΠ°:

<Клип>.hitTest(<Π₯>, <Y>, <ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚ΡƒΡ€>);

ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ соотвСтствСнно Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎΠΉ Π½Π°ΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ логичСский Ρ‚ΠΈΠΏ ΠΈ позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΊΠ»ΠΈΠΏΠ°. Если этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Flash считаСт Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΊΠ»ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚ΡƒΡ€ содСрТащСйся Π² Π½Π΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Π’ случаС значСния false Flash "мыслСнно" вписываСт ΠΊΠ»ΠΈΠΏ Π² Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΈ считаСт Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΊΠ»ΠΈΠΏΠ° Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€.

Если заданная Ρ‚ΠΎΡ‡ΠΊΠ° находится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ»ΠΈΠΏΠ°, ΠΌΠ΅Ρ‚ΠΎΠ΄ hitTest Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² условном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π³Π΄Π΅-Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΏ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρƒ ΠΈΠ· мноТСства ΠΊΡ€ΠΈΠ²Ρ‹Ρ…. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΠΌ Π΅Π³ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΈ присвоим Π΅ΠΌΡƒ имя hit. ПослС этого привяТСм ΠΊ этому ΠΊΠ»ΠΈΠΏΡƒ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события enterFrame:

onClipEvent(enterFrame) {

if (this.hitTest(_root._xmouse, _root._ymouse, true)) {

this._alpha = 50;

} else { this._alpha = 100;

}

}

Π­Ρ‚ΠΎΡ‚ сцСнарий-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события провСряСт, находится Π»ΠΈ курсор ΠΌΡ‹ΡˆΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° нашСго ΠΊΠ»ΠΈΠΏΠ°. Если это Ρ‚Π°ΠΊ, ΠΊΠ»ΠΈΠΏ дСлаСтся ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС β€” ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ (Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ).

Π’ нашСм случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ hitTest провСряСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ "ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅" Π² сам ΠΊΠ»ΠΈΠΏ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π³ΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true. Если ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ станСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π² Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, описанный Π²ΠΎΠΊΡ€ΡƒΠ³ нашСго ΠΊΠ»ΠΈΠΏΠ°. Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ грубая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° совпадСния Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΊΠ»ΠΈΠΏΠ°.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° hitTest ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° совпадСниС Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠΏΠ°, Ρ‚. Π΅. ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

<Клип!>.hitTest(<Клип 2>);

Π’ этом случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ hitTest провСряСт "ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅" Π½Π΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² Ρ„ΠΈΠ³ΡƒΡ€Ρƒ, Π° Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, описанного Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, Π² Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, описанный Π²ΠΎΠΊΡ€ΡƒΠ³ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚Π°ΠΊ, словно Π΅Π³ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false.

Нам ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·Π΅Ρ†-ΠΊΠ»ΠΈΠΏ со слоТной Ρ„ΠΈΠ³ΡƒΡ€ΠΎΠΉ, помСстим Π΅Π³ΠΎ экзСмпляр Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист, сдСлаСм Π΅Π³ΠΎ помСньшС ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ cursor. К ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ (ΠΈ СдинствСнному) ΠΊΠ°Π΄Ρ€Ρƒ Ρ„ΠΈΠ»ΡŒΠΌΠ° привяТСм Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ нСбольшой сцСнарий:

_root.cursor.startDrag(true);

Π­Ρ‚ΠΎΡ‚ сцСнарий заставляСт ΠΊΠ»ΠΈΠΏ cursor Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π·Π° ΠΌΡ‹ΡˆΡŒΡŽ, Ρ‚. Π΅. ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΉ курсор.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ напишСм сцСнарий-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события enter Frame для ΠΊΠ»ΠΈΠΏΠ° hit, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ провСрял касаниС ΠΊΠ»ΠΈΠΏΠΎΠ² cursor ΠΈ hit ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ:

onClipEvent(enterFrame) {

if (this.hitTest(_root.cursor)) {

this._alpha = 50;

} else { this._alpha = 100;

}

}

Π Π°Π±ΠΎΡ‚Π° с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ

Π₯ΠΎΡ‚ΡŒ Flash ΠΈ прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства рисования Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ создания Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π²ΠΎ врСмя воспроизвСдСния Ρ„ΠΈΠ»ΡŒΠΌΠ°. НапримСр, Ссли ΠΌΡ‹ собираСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² процСссС воспроизвСдСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ срСдства для рисования этого самого Π³Ρ€Π°Ρ„ΠΈΠΊΠ°. Π§Ρ‚ΠΎ Π² этом случаС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π°ΠΌ Flash?

А ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ½ Ρ†Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° MovieClip, слуТащих для рисования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ ΠΈ Π·Π°Π»ΠΈΠ²ΠΎΠΊ. Π“Ρ€Π°Ρ„ΠΈΠΊΠ°, нарисованная с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, называСтся созданной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ»ΠΈ просто ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ.

Π’ Π³Π»Π°Π²Π΅ 14 ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΌΠ°ΡΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… слоях. Но Flash Π½Π΅ останавливаСтся Π½Π° этом β€” ΠΎΠ½ позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² маску любой ΠΊΠ»ΠΈΠΏ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, разумССтся, внСшнСй Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ рисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ выполняСтся рисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈΠ· сцСнариСв ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° movieClip для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Но сначала Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ нарисованная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° выводится "Π½ΠΈΠΆΠ΅" нарисованной Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‚. Π΅. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов рисования Flash. Говорят, Ρ‡Ρ‚ΠΎ программная Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ мСньший Π½ΠΎΠΌΠ΅Ρ€ Π² порядкС пСрСкрытия, Ρ‡Π΅ΠΌ нарисованная Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ написаниСм сцСнариСв, Ρ€ΠΈΡΡƒΡŽΡ‰ΠΈΡ… Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ созданная Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π»Π°ΡΡŒ. РСкомСндуСтся Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ рисуСмой Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ "пустыС" ΠΊΠ»ΠΈΠΏΡ‹, находящиСся Π½Π° самых Π²Π΅Ρ€Ρ…Π½ΠΈΡ… слоях.