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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Adobe Flash. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Ρ€ΠΊΠ°Π΄, Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΎΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ³Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ActionScriptΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 30

Автор Гэри Π ΠΎΠ·Π΅Π½Ρ†Π²Π΅ΠΉΠ³

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄

Для создания Π»Π°Π²ΠΎΠ²ΠΎΠΉ Π»Π°ΠΌΠΏΡ‹, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ случайности (рис. 6.13), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ActionScript. Π’Π½Π°Ρ‡Π°Π»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 20 ΠΊΠ»ΠΈΠΏΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ Π»Π°Π²ΠΎΠ²ΠΎΠΉ Π»Π°ΠΌΠΏΡ‹. Π—Π°Ρ‚Π΅ΠΌ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ постоянный Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ· ΠΏΠΎ экрану.

Рисунок 6.13. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ «лавовая Π»Π°ΠΌΠΏΠ°Β» состоит ΠΈΠ· Π΄Π½Π°, ΠΊΡ€Ρ‹ΡˆΠΊΠΈ, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ части ΠΈΠ· ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ стСкла ΠΈ красных ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ€ΠΎΠ»ΠΈΠΊΠ°

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈΠΊΠ° Lava Lamp Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особой Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. НапримСр, ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΡ€ΡƒΠ³ΠΈ Π±Π΅Π· Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈ с Ρ€Π°Π΄ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π»ΠΈΠ²ΠΊΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ красным Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ красный Ρ†Π²Π΅Ρ‚ получаСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ установки свойства alpha Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 %. На рис. 6.14 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ ΠΊΠ»ΠΈΠΏ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ Fill (Π—Π°Π»ΠΈΠ²ΠΊΠ°) ΠΈ Mixer (ΠœΠΈΠΊΡΠ΅Ρ€), ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ красного Ρ†Π²Π΅Ρ‚Π°.

Рисунок 6.14. Π’ ΠΏΠ°Π½Π΅Π»ΠΈ Fill ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΡƒΡŽ Π·Π°Π»ΠΈΠ²ΠΊΡƒ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ПанСль Mixer позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прозрачности

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Lava Lamp ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 20 экзСмпляров ΠΊΠ»ΠΈΠΏΠ°, созданных ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠ³ΠΎ эталона. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ attachMovie ΠΊΠΎΠΏΠΈΠΈ ΠΊΠ»ΠΈΠΏΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ€ΠΎΠ»ΠΈΠΊ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ attachMovie рассказано Π² Π³Π»Π°Π²Π΅ 5, Ρ€Π°Π·Π΄Π΅Π» Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ трСхмСрности».

ΠŸΡ€ΠΈ запускС Ρ€ΠΎΠ»ΠΈΠΊΠ° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈ СдинствСнном ΠΊΠ°Π΄Ρ€Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡˆΠΊΠ°Π»Ρ‹ выполняСтся функция initLamp. ΠŸΡ€ΠΈ этом ΠΏΠΎΠΌΠΈΠΌΠΎ 20 ΠΊΠ»ΠΈΠΏΠΎΠ² ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ создан массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ двиТСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, вСрхняя ΠΈ ниТняя части Π»Π°ΠΌΠΏΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ здСсь ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹. ΠŸΠΎΠ²Π΅Ρ€Ρ… ΠΊΠ»ΠΈΠΏΠΎΠ² ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ стСкла.

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄ attachMovie ΠΈΠ»ΠΈ duplicateMovieClip Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΏΠ°. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ опрСдСляСт порядок пСрСкрывания ΠΊΠ»ΠΈΠΏΠΎΠ². ВсС Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΠΈΠΏΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ изобраТСниями Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ, Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ частСй Π»Π°Π²ΠΎΠ²ΠΎΠΉ Π»Π°ΠΌΠΏΡ‹. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ duplicateMovieClip Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ этих Ρ‚Ρ€Π΅Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ².

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΊΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ initLamp:

function initLamp () {

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ ΠΈ ниТнюю

// ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π»Π°Π²ΠΎΠ²ΠΎΠΉ Π»Π°ΠΌΠΏΡ‹ ΠΏΠΎ оси Y.

top = 0;

bottom = 300;

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ экзСмпляры ΠΊΠ»ΠΈΠΏΠ°, содСрТащСго ΠΏΡƒΠ·Ρ‹Ρ€Π΅ΠΊ.

numBubbles = 20;

for (i=0; i<numBubbles; i++) {

attachMovie("bubble", "Bubble"+i, i);

}

// Π”ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅ΠΌ изобраТСния стСкла, Π½ΠΈΠ·Π° ΠΈ Π²Π΅Ρ€Ρ…Π° Π»Π°ΠΌΠΏΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹

// ΠΎΠ½ΠΈ оказались Π½Π°Π΄ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°ΠΌΠΈ.

duplicateMovieClip("Glass", "Glass", i++);

duplicateMovieClip("Top", "Top", i++);

duplicateMovieClip("Bottom", "Bottom", i++);

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, содСрТащиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ скорости ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ².

bubbles = new Array();

for (i=0; i<numBubbles; i++) {

bubbles[i] = {speed:0};

}

}

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ всС элСмСнты ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹, воспроизвСдСниС Ρ€ΠΎΠ»ΠΈΠΊΠ° осущСствляСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ: врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вызываСтся функция, которая обновляСт мСстополоТСниС ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ² ΠΈ создаСт Π½ΠΎΠ²Ρ‹Π΅. Клип, располоТСнный Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ поля, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ moveBubbles Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ событии enterFrame. Ѐункция moveBubbles Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ² Π²Π²Π΅Ρ€Ρ… ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· ΠΈ ΠΈΡ… остановку Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ части Ρ€ΠΎΠ»ΠΈΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ случаС ΠΈΠ· 30 Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ newBubble для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°.

...

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

НСбольшиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… скобок, ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· послСднСй строки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ initLamp: bubbles [i] = {speed:0} . К ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ³ΠΎ синтаксиса: bubbles[0].speed. ΠŸΡ€ΠΈ этом ваш ΠΊΠΎΠ΄ станСт Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π±ΠΎΡ€Ρ‡ΠΈΠ²Ρ‹ΠΌ, Π° элСмСнт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ массива смоТСт ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… частСй. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку myObject = {speed: 6, weight: 40, clipname: Β«clip1Β»}, Π° Π·Π°Ρ‚Π΅ΠΌ для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синтаксис myObject. speed. Π’Π°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ структурС ΠΈΠ· языков высокого уровня, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C ΠΈΠ»ΠΈ Pascal.

// ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ.

function moveBubbles () {

for (i=0; i<numBubbles; i++) {

// Π£Π·Π½Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ.

o = _root["Bubble"+i]._y;

// ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ, Ссли достигнута ниТняя Π³Ρ€Π°Π½ΠΈΡ†Π°

// ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° "Π»Π°ΠΌΠΏΠ°".

if <(bubbles[i].speed > 0) and (y > bottom)) {

bubbles[i].speed = 0;

// ΠžΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ, Ссли достигнута вСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π°

// ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

} else if ((bubbles[i].speed < 0) and (y < top)) {

bubbles[i].speed = 0;

// ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ.

} else {

// ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ.

_root["Bubble"+i]._y = y+bubbles[i].speed;

// ИзмСняСм Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°.

height = _root["Bubble"+i]._yscale;

width = _root["Bubble"+i]._xscale;

if (height > width) height -= 1;

_root["Bubble"+i]._yscale = height;

}

}

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΠ·Ρ‹Ρ€Π΅ΠΊ с Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ 1/30.

if (Math.random()*30 <= 1) {

newBubble();

}

}

Ѐункция newBubble провСряСт массив bubbles Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… мСст для ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° создаСт ΠΏΡƒΠ·Ρ‹Ρ€Π΅ΠΊ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΈΠ»ΠΈ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Π»Π°ΠΌΠΏΡ‹. Π Π°Π·ΠΌΠ΅Ρ€ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ° задаСтся случайным числом. Π•Π³ΠΎ Π΄Π»ΠΈΠ½Π° Π² Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° большС, Ρ‡Π΅ΠΌ ΡˆΠΈΡ€ΠΈΠ½Π°. По ΠΌΠ΅Ρ€Π΅ пСрСмСщСния ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ° эта Ρ€Π°Π·Π½ΠΈΡ†Π° постСпСнно исчСзаСт.

function newBubble () {

for (i=0; i<numBubbles; i++) {

// Находим пустоС мСсто для ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°.

if (bubbles[i].speed == 0) {

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡƒΠ·Ρ‹Ρ€Π΅ΠΊ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Π»Π°ΠΌΠΏΡ‹.

if (Math.random() < .5) {

bubbles [i].speed = 1 ;

_root["Bubble"+i]._y = -40;

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡƒΠ·Ρ‹Ρ€Π΅ΠΊ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части Π»Π°ΠΌΠΏΡ‹.

} else {

bubbles[i].speed = -1 ;

_root ["Bubble"+i ]._y = 340;

}

// УстанавливаСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°.

size = 40+ Math. random ()*40;

_root["Bubble"+i]._xscale = size;

_root["Bubble"+i]._yscale = size*3;

_root["Bubble"+i]._x = 10+Math. random ()*80;

// Π“ΠΎΡ‚ΠΎΠ²ΠΎ.

break;

}

}

}

Π’Ρ€ΠΈ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ основу Ρ€ΠΎΠ»ΠΈΠΊΠ° Lava Lamp, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, запустив Ρ„Π°ΠΉΠ» Lavalamp.fla Π½Π° Web-сайтС.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ стСкла Π±Ρ‹Π»ΠΎ создано Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°ΠΌ. Благодаря ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ свойства Π°Π»ΡŒΡ„Π°-прозрачности сквозь Π½Π΅Π³ΠΎ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΈ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΎΠ»ΠΈΠΊ вписывался Π² ваш сайт ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ своим Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠΎΠΌ.

Π˜Π³Ρ€Π°" Π–ΠΈΠ·Π½ΡŒ"

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: gameoflife.fla

Π˜Π³Ρ€Π° "Π–ΠΈΠ·Π½ΡŒ" извСстна ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² области искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ популярная ΠΈΠ³Ρ€Π°. Она Π±Ρ‹Π»Π° ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΌ Π”ΠΆΠΎΠ½ΠΎΠΌ КонвэйСм ΠΈ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ благодаря ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² 1970 Π³ΠΎΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ "Scientific American". ВскорС послС этого ΠΈΠ³Ρ€Π° стала Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ популярной срСди программистов.

Выглядит всС ΠΎΡ‡Π΅Π½ΡŒ просто – Π² ячСйки сСтки Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ помСщаСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ‚ΠΎΡ‡Π΅ΠΊ. На ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΌ шагС ΠΈΠ³Ρ€Ρ‹ содСрТаниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки сСтки подвСргаСтся прСобразованиям согласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΡ€Π°Π²ΠΈΠ». Если данная ячСйка содСрТит Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΈ Π² ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΠΈΡ… ΠΊ Π½Π΅ΠΉ ячСйках находится Π΄Π²Π΅ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‚ΠΎ содСрТимоС Π΄Π°Π½Π½ΠΎΠΉ ячСйки остаСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Если Π² ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΠΈΡ… ячСйках содСрТится мСньшС Π΄Π²ΡƒΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ, Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° Π² Π΄Π°Π½Π½ΠΎΠΉ ячСйкС "ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚" ΠΎΡ‚ одиночСства, Π° Ссли большС Ρ‚Ρ€Π΅Ρ…, Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° "ΡƒΠΌΠΈΡ€Π°Π΅Ρ‚" ΠΎΡ‚ тСсноты. Если ΠΆΠ΅ данная ячСйка пуста ΠΈ Π² ΠΏΡ€ΠΈΠ»Π΅Π³Π°ΡŽΡ‰ΠΈΡ… ячСйках содСрТится Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρ€ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ячСйкС "роТдаСтся" новая Ρ‚ΠΎΡ‡ΠΊΠ°.

Π’ΠΎΡ‚ ΠΈ всС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ исходный Ρ„Π°ΠΉΠ». Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ колонию Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌ Π½Π° рис. 6.15 ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Run.

Рисунок 6.15. Π’ ΠΈΠ³Ρ€Π΅ Β«Π–ΠΈΠ·Π½ΡŒΒ» ΠΆΠΈΠ²ΡƒΡ‚ ΠΈ ΡƒΠΌΠΈΡ€Π°ΡŽΡ‚ малСнькиС красныС Ρ‚ΠΎΡ‡ΠΊΠΈ

Π—Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт сСтку, Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ экран. КаТдая ячСйка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ. Π©Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ ячСйкС, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ состояниС.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ячССк, ΠΎΠ½ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π°Ρ‡Π°Π»Π° ΠΈΠ³Ρ€Ρ‹. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ ΠΊΠ°Π΄Ρ€Π° примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС описанный Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ». Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ячССк мСняСтся.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Stop для остановки ΠΈΠ³Ρ€Ρ‹. Π˜ΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ° пошагового исполнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° (Step) ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° очистки ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля (Clear).

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄

Π ΠΎΠ»ΠΈΠΊ начинаСтся с создания сСтки, состоящСй ΠΈΠ· ΠΊΠ»ΠΈΠΏΠΎΠ² (ячССк). Π’Π°ΠΊΠΆΠ΅ создаСтся Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива соотвСтствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ячСйкС ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ находится этот ΠΊΠ»ΠΈΠΏ-ячСйка (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ находится Π»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ ячСйкС ΠΆΠΈΠ»Π΅Ρ†).

Основная функция Ρ€ΠΎΠ»ΠΈΠΊΠ° просматриваСт всС ячСйки ΠΈ вычисляСт измСнСния Π² Π½ΠΈΡ…. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставляСт собой ΠΎΠ΄ΠΈΠ½ шаг ΠΈΠ³Ρ€Ρ‹. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Run, Ρ€ΠΎΠ»ΠΈΠΊ выполняСт эти шаги Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Step исполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ шаг.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ€ΠΎΠ»ΠΈΠΊΠ°

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ (рис 6.15) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΏ-ячСйку. НазовСм этот ΠΊΠ»ΠΈΠΏ Β«gridboxΒ». Он Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΏΠΎΠ»Π΅, Π½ΠΎ Π΅ΠΌΡƒ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ имя Π² ΠΏΠ°Π½Π΅Π»ΠΈ Linkage Properties, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ActionScript.

Клип "gridbox" Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° ΠΊΠ°Π΄Ρ€Π° – ΠΎΠ΄ΠΈΠ½ с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ – Π² Π²ΠΈΠ΄Π΅ пустой ячСйки. ΠŸΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΊΠ°Π΄Ρ€Ρƒ Π½Π°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ сцСнарий с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ stop(). Π’ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ слой ΠΊΠ»ΠΈΠΏΠ° помСститС ΠΊΠ½ΠΎΠΏΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΊΠ»ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ячСйкС.

НаконСц, создайтС ΠΊΠ»ΠΈΠΏ "actions", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нашСго ΠΊΠΎΠ΄Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°