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

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

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

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

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

ΠŸΠ΅Ρ€Π²Π°Ρ функция создаСт сСтку ΠΈΠ· 25x15 ячССк ΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. КаТдая строка массива прСдставляСт собой столбСц (ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив) Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для доступа ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ Π»Π΅Π²ΠΎΠΌΡƒ элСмСнту сСтки Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ grid[0][0] , Π° для доступа ΠΊ пятому слСва ΠΈ ΡΠ΅Π΄ΡŒΠΌΠΎΠΌΡƒ свСрху – grid[4][6] (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ находится Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ).

function createGrid() {

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»ΠΈΠΏΡ‹ ΠΈ заполняСм массив.

grid = new Array();

for(y=0;y<15;y++) {

var temp = new Array();

for(x=0; x<25; x++) {

mc = attachMovie("gridbox", "gridbox "+x+" "+y,y*25+x);

mc._x = x*20+30;

mc._y = y*20+30;

mc.x = x;

mc.y = y;

temp.push(false);

}

grid.push(temp);

}

}

Ѐункция cycle являСтся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Она ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для вычислСния ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅ΠΌ массив grid. Π­Ρ‚ΠΎ дСлаСтся для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ элСмСнта массива grid это Π½Π΅ повлияло Π½Π° дальнСйшиС вычислСния Π½Π° Π΄Π°Π½Π½ΠΎΠΌ шагС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ВсС вычислСния происходят ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° значСния элСмСнтов массива baseGrid.

function cycle() {

// Π”ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅ΠΌ массив grid.

var baseGrid = duplicateGrid();

// Π”Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ всСм ячСйкам.

for(y=0;y<15;y++) {

for(x=0;x<25;x++) {

thisBox = baseGrid[y][x];

mc = this["gridbox "+x+" "+y];

// ВычисляСм количСство "засСлСнных" ячССк Π²ΠΎΠΊΡ€ΡƒΠ³

// Π΄Π°Π½Π½ΠΎΠΉ.

n = 0;

n += baseGrid[y-1][x-1];

n += baseGrid[y-1][x];

n += baseGrid[y-1][x+1];

n += baseGrid[y][x-1];

n += baseGrid[y][x+1];

n += baseGrid[y+1][x-1];

n += baseGrid[y+1][x];

n += baseGrid[y+1][x+1];

// Если Π² этой ячСйкС ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ Ссли количСство

// "ΠΆΠΈΠ»ΡŒΡ†ΠΎΠ²" Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ€Π°Π²Π½ΠΎ 2 ΠΈΠ»ΠΈ 3, Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° остаСтся.

if (thisBox) {

if ((n == 2) or (n == 3)) {

newValue = true;

} else {

newValue = false;

}

// Новая Ρ‚ΠΎΡ‡ΠΊΠ° "роТдаСтся", Ссли ячСйка Π±Ρ‹Π»Π° пуста

// ΠΈ Ссли Π² смСТных ячСйках находится Ρ€ΠΎΠ²Π½ΠΎ 3 Ρ‚ΠΎΡ‡ΠΊΠΈ.

} else {

if (n == 3) {

newValue = true;

} else {

newValue = false;

}

}

// МСняСм Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Π΄Ρ€ ΠΊΠ»ΠΈΠΏΠ° mc.

grid[y][x] = newValue;

if (newValue) {

mc.gotoAndStop(2);

} else {

mc.gotoAndStop(1);

}

}

}

}

Ѐункция duplicateGrid() создаСт копию массива grid ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² качСствС своСго значСния.

// БоздаСм копию массива grid.

function duplicateGrid() {

var newGrid = new Array();

for(y=0;y<15;y++) {

var temp = new Array();

for(x=0;x<25;x++) {

temp.push(grid[y][x]);

}

newGrid.push(temp);

}

return(newGrid);

}

Π”Π°, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ duplicateGrid() , вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΠΏΡ€ΠΈΡ€Π°Π²Π½ΡΡ‚ΡŒ массив baseGrid массиву grid? ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½Π°Ρ‡Π΅ Ρƒ нас Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ массива. ВмСсто этого ΠΈ grid ΠΈ baseGrid ΡΡΡ‹Π»Π°Π»ΠΈΡΡŒ Π±Ρ‹ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΠΆΠ΅ массив ΠΈ измСнСния Π² массивС grid появлялись Π±Ρ‹ ΠΈ Π² массивС baseGrid. Клип "actions" содСрТит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ onClipEvent (enterFrame), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ runCicle ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΊΠ°Π΄Ρ€Ρƒ. Π­Ρ‚Π° функция провСряСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ running ΠΈ запускаСт cycle, Ссли Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ истинно (true).

function runCycle() {

if (running) {

cycle();

}

}

Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сцСнарии ΠΊΠ½ΠΎΠΏΠΎΠΊ. КаТдая ΠΊΠ½ΠΎΠΏΠΊΠ° содСрТит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²ΠΈΠ΄Π° on(release), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΠ΅Ρ€Π²Π°Ρ (ΠΊΠ½ΠΎΠΏΠΊΠ° Run) Π·Π°Π΄Π°Π΅Ρ‚ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ running Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true.

function startCycle() {

running = true;

}

Если ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ Step, Ρ‚ΠΎ функция cycle Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° лишь ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ пСрСмСнная running Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ своСго значСния.

function stepCycle() {

cycle();

}

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Stop ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ running присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false.

function stopCycle() {

running = false;

}

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Clear ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ массив grid ΠΈ всС ячСйки сСтки.

function clear() {

for(y=0;y<15;y++) {

for(x=0;x<25;x++) {

grid[y][x] = 0;

this["gridbox "+x+" "+y].gotoAndStop(1);

}

}

running = false;

}

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΏΠ°-ячСйки. Π­Ρ‚ΠΎΡ‚ сцСнарий опрСдСляСт состояниС ячСйки. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ creatGri d ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ x ΠΈ y для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΏΠ°. Π­Ρ‚ΠΎ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ячСйками ΠΈ элСмСнтами массива ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² массив ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния ячСйки.

on (release) {

if (_currentframe == 1) {

gotoAndStop(2);

_parent.grid[y][x] = true;

} else {

gotoAndStop(1);

_parent.grid[y][x] = false;

}

}

К свСдСнию

ΠšΡ€ΠΎΠΌΠ΅ рассмотрСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² сцСнарии ΠΊΠ°Π΄Ρ€Π° имССтся ΠΊΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ creatGrid, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° stop(). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ другая рСализация. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ³Ρ€Π° нуТдаСтся Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для запуска. Π’Π΅Π΄ΡŒ Ссли Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Run ΠΏΡ€ΠΈ пустом ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. ΠŸΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ с ΠΊΠΎΠ»ΠΎΠ½ΠΈΠ΅ΠΉ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° рис 6.15. Π•Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «малСнький Π²Π·Ρ€Ρ‹Π²Β». ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ ΠΈΠ³Ρ€Ρƒ Β«Π–ΠΈΠ·Π½ΡŒΒ», ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ‚Π°ΠΊΠΈΠΌ «цивилизациям».

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои ΠΊΠΎΠ»ΠΎΠ½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΈΡ‰ΠΈΡ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅. Поиск ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ "game of life" ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π²Π°ΠΌ мноТСство страниц с самыми Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ конфигурациями.

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

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΈΠ³Ρ€Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ»ΠΎΠ½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ нСобходимости ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ.

Π“Π»Π°Π²Π° 7 Π˜Π³Ρ€ΡƒΡˆΠΊΠΈ-конструкторы

β€’ Π‘ΠΎΡΡ‚Π°Π²ΡŒ лису ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Β«ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΒ»

β€’ Π‘ΠΎΠ·Π΄Π°ΠΉ лису ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ "НаТми ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈ"

β€’ Альбом для рисования

β€’ ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ миксСр

β€’ Π’Π°Π½Ρ†ΡƒΡŽΡ‰Π°Ρ лиса

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим Flash-Ρ€ΠΎΠ»ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ творчСскиС способности Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. Π’ Π½ΠΈΡ… Π½Π΅Ρ‚ Ρ†Π΅Π»ΠΈ ΠΈΠ»ΠΈ счСта, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ возмоТности ΠΏΠΎΡ„Π°Π½Ρ‚Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ создадим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй. БущСствуСт нСсколько разновидностСй ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ части ΠΊ фиксированному ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ частСй ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создадим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для рисования Π»ΠΈΠ½ΠΈΠΉ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€ Π½Π° чистом листС. И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ пСсни ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π‘ΠΎΡΡ‚Π°Π²ΡŒ лису ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Β«ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΒ»

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

МногиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹ созданы ΠΏΠΎ подобию ΠΈΠ³Ρ€ΡƒΡˆΠ΅ΠΊ Π΄ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ эры. Одна ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… старых ΠΈΠ³Ρ€ΡƒΡˆΠ΅ΠΊ – "Mister Potato Head" (Господин ΠΊΠ°Ρ€Ρ‚ΠΎΡ„Π΅Π»ΡŒΠ½Π°Ρ Π³ΠΎΠ»ΠΎΠ²Π°). Она прСдставляла собой Π½Π°Π±ΠΎΡ€ пластиковых частСй Ρ‚Π΅Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π±Π΅Π½ΠΎΠΊ ΠΌΠΎΠ³ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΎΡˆΠΊΠ΅ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ смСшного Ρ‡Π΅Π»ΠΎΠ²Π΅Ρ‡ΠΊΠ°. ПозТС вмСсто ΠΊΠ°Ρ€Ρ‚ΠΎΡˆΠΊΠΈ стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пластиковоС Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅.

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

Π—Π°Π΄Π°Ρ‡Π° этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° – ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ части Ρ‚Π΅Π»Π° лисы ΠΊ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΠΎΠΌΡƒ Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Ρƒ ΠΈ Ρ‚Π°ΠΊ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π²Π΅Ρ€ΡŒΠΊΠ°. ΠœΠ΅Ρ‚ΠΎΠ΄ drag-and drop (ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌ всСм, ΠΊΡ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΈ отпусканиС ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ. Она Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, Π½Π°Π΄ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠ»ΠΈΠΏΠΎΠΌ находится Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ курсор, ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСтаскивания Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΏΠ° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΌΡ‹ΡˆΠΈ.

Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ Π»Π΅Π³ΠΊΠΎ, ΠΊΠ°ΠΊ каТСтся. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ»ΠΈΠΏ Π²Ρ‹Π±Ρ€Π°Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора ΠΌΡ‹ΡˆΠΈ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠ»ΠΈΠΏΠΎΠΌ.

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

Для создания ΠΈΠ³Ρ€ΡƒΡˆΠΊΠΈ-конструктора, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ drag-and-drop, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ графичСскиС изобраТСния. На рис. 7.1 Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅, Π² Π»Π΅Π²ΠΎΠΉ – Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ изобраТСния Ρ€ΡƒΠΊ, Π½ΠΎΠ³, Ρ€Ρ‚ΠΎΠ² ΠΈ Π³Π»Π°Π·.

Рисунок 7.1. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ слСва части Ρ‚Π΅Π»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊ располоТСнному справа Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Ρƒ

Π ΠΎΠ»ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Π² Ρ„Π°ΠΉΠ» Makeafox-drag.fla Π½Π° Web-сайтС. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π² Π»ΡŽΠ±ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ экрана.

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

Если Π²Ρ‹ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π²ΠΎ Flash, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π»Π΅Π³ΠΊΠΎ – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΏΡ‹ частСй Ρ‚Π΅Π»Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ startDrag ΠΈ stopDrag. На самом Π΄Π΅Π»Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всС услоТнит. Π― Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ startDrag ΠΈ Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ здСсь, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнты ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ полю Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ просто.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° Π² Π²ΠΈΠ΄Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события on(press) ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ startDrag. Однако ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС Ρ†Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ startDrag, Ρ‚Π°ΠΊΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΠΈΠΏ. Если ΠΆΠ΅ Π²Ρ‹ прСдставитС ΠΈΡ… Π² Π²ΠΈΠ΄Π΅ ΠΊΠ»ΠΈΠΏΠΎΠ², ΠΈΠΌ нСльзя Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ on(press), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся прСдставлСниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части Ρ‚Π΅Π»Π° ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠΏΠ° с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² Ρ€ΠΎΠ»ΠΈΠΊ Π½ΠΎΠ²ΠΎΠΉ части Π²Π°ΠΌ придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько дСйствий.

Π›ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ drag-and-drop ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ частям Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, благодаря Ρ‡Π΅ΠΌΡƒ ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅.

Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ помСстим Π² ΠΊΠ»ΠΈΠΏ "actions", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находится Π²Π½Π΅, ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области ΠΈ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ надпись "Actions".