Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CompGraphicsRGUIT.doc
Скачиваний:
72
Добавлен:
21.04.2014
Размер:
2.03 Mб
Скачать

If(isNaN(ans))gotoAndStop(1); /*если введено не число, вернемся в первый кадр*/

else{

ans=parseInt(ans); /*Переведем введенный текст в целое число */

if ((ind._width+=10)>140)gotoAndStop(1); /*Увеличим ширину индикатора на 10. Если она больше 140, вернемся в первый кадр (больше 14 попыток).*/

else{

tryn++; /*Увеличим число попыток и выведем результат сравнения. */

if(ans<num) res="Ваше число меньше"

else if (ans>num) res="Ваше число больше"

else nextFrame(); //Если число угадано перейдем на третий кадр.

}

}

}

  1. Выделить третий кадр и оформить его в соответствии с образцом.

  2. С

    tryNumb=tryn;

    вязать с динамическим текстовым полем переменную tryNumb.

  3. Создать следующий обработчик события «Вход в кадр»:

  4. Написать обработчик события Releaseдля кнопки:

on(release){

gotoAndStop(1);

}

  1. Протестировать клип и убедиться, что все функции выполняются.

  2. Сохранить файл на рабочем диске.

Специальный калькулятор

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

Предположим, что фирма «Рога и Копыта» продает следующие виды товаров: Рога, Копыта, Мундштуки, Гребешки по цене 10, 25, 100 и 20 за одну штуку соответственно. Оптовым покупателям предоставляется скидка: при суммарной стоимости покупки более 100 – 5%, а более 1000 – 10%. Требуется разработать калькулятор, подсчитывающий: стоимость покупки, размер скидки, сумму к оплате с учетом скидки. В калькуляторе будет использовано меню для выбора вида покупаемого товара.

Примерный образец выполненного задания находится по адресу:

http://www.master-teacher.org/compAnimo/examples/calculator.html.

  1. Создать новый клип. Параметры: размеры 400х280 пикселей, цвет фона: #000066.

  2. Добавить два слоя. Ввести имена слоев (снизу вверх): back, text, script.

  3. Создать графический символ сorp, содержащий прямоугольник с закругленными углами. Установить толщину линии = 3 пикселя, цвет заливки #000066.

  4. Поместить экземпляр символа сorpв слойback.

  5. Разместить в слое textстатические текстовые поля в левой части калькулятора в соотвествии с образцом.

  6. Создать кнопку. Имя символа: btn, внешний вид – прямоугольник с закругленными углами. Создать и отредактировать четыре кадра объекта, как рассмотрено выше.

  7. Создать символ вида MovieClip. Имя символа:menuItem. Перейти в режим редактирования символа.

  8. Установить на первый кадр символа menuItemэкземпляр символаbtn.

  9. Установить поверх этого экземпляра динамическое текстовое поле. Связать с ним переменную txt. Ввести текст:Выберите.

  10. Установить два экземпляра символа menuItem, как показано на рисунке. Присвоить имена: menuBtnиcalc.

  11. Добавить 7 динамических текстовых полей (второй ряд слева в образце). Связать каждое из них с переменной. Имена переменных для полей (сверху вниз): name_, price, q, cost, bonus, bonusmoney, money.

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

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

  2. Создать и отредактировать кнопку треугольной формы. Присвоить имя updown.

  3. Поместить два экземпляра символа updown. Повернуть один из этих экземпляров на 180 градусов, как показано в образце.

  4. Присвоить имена кнопкам: upBtnиdownBtn. Первая из них будет использоваться для увеличения значения переменнойqна 1, а вторая – для уменьшения его на 1.

  5. Сделать активным первый кадр слоя scriptи открыть панельActions.

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

имя_объекта.onPress=function()…

Можно также написать функцию, например, такую:

functionmyfunc()…

и затем назначить ее в качестве обработчика события для объекта:

имя_объекта.onPress=myfunc

Последняя из описанных возможностей удобна при динамическом создании объектов.

  1. Ввести следующий текст скрипта:

calc.txt="Считать"; //В нижнем объекте поменяем текст

//Описания массивов:

texts=Array("Рога","Копыта","Мундштуки","Гребешки"); //Имена товаров

prices=Array("10","25","100","20"); //Цены

nt=texts.length; //Количество элементов в массивах

/************************

Создание меню

*************************/

menuBtn.onPress=function(){

//Обработчик события объекта menuBtn

// Начальные значения связанных переменных:

price=0;

q=1;

name_="";

calculate();

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

//цикл создания динамических объектов меню:

duplicateMovieClip(menuBtn,"menu"+i,i);

//Создать объект (дубль)

// Имена объектов будут такими: menu0,menu1…

menu=eval("menu"+i); //Указатель на созданный объект

menu._y+=(menu._height+1)*(i+1);

//Переместить объект вниз

menu.txt=texts[i];

//Установить значение текста (из массива)

menu.onPress=menuPress;

//Связать объект с обработчиком

} //Конец цикла.

}//Конец функции onPress.

/******************

Обработчик события для элемента меню

******************/

function menuPress(){

n=this._name.charAt(4);

//this– указатель на объект, вызвавший событие.

// Его имя: menu0,menu1… Значитn=0,1…

//Значения связанных переменных:

name_=this.txt;

price=prices[n]; //из массива

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

//цикл для удаления всех динамических объектов

menu=eval("menu"+i);

//получить указатель объекта по его имени

removeMovieClip(menu); // и удалить.

}// Конец цикла.

calculate(); //Пересчитать стоимость (обращение к функции).

}//Конец функции menuPress.

// Обработчик события для объекта calc:

calc.onPress=function(){

calculate(); //обращение к функции

}//Конец функции

// Функция подсчета стоимости покупки с учетом скидки

function calculate(){

if(isNaN(price)||isNaN(q)){

//Если цена, или количество – не число

price=0; //Установить их значения по умолчанию

q=0;

}

cost=price*q; //стоимость

bonus=0; //Скидка в процентах:

if(cost>100)bonus=5; //Если цена > 100, скидка = 5

if(cost>1000)bonus=10; // Если цена > 1000, скидка = 10

bonusmoney=bonus*cost/100; //Скидка в рублях

money=cost-bonusmoney; //Стоимость покупки

}//Конец функции calculate

//Обработчик события для объекта downBtn:

downBtn.onPress=function(){

if(q>0){ //Если количество больше нуля

q--; //То уменьшить его на 1

calculate() // и пересчитать.

}

} // Конец функции

//Обработчик события для объекта upBtn:

upBtn.onPress=function(){

q++; Увеличить количество заказанного товара на 1

calculate(); // и пересчитать.

} // Конец функции

  1. Протестировать созданный клип, нажав Ctrl+Enter.

  2. Сохранить результат на рабочем диске.