Случайная цитата

Случайная цитата (анекдот, афоризм) - распространённый вид веб-приложений, которые могут быть созданы на разных языках программирования (JavaScript, PHP и т.д.). Можно для этого воспользоваться и языком ActionScript.

Алгоритм создания такого приложения на AS 2.0 весьма прост:

1.) Сперва создаём на рабочем столе два динамических текстовых поля со следующими именами:

- "txt" - в этом динамическом поле будет выводится цитата;

- "author" - в этом динамическом текстовом поле будет выводится автор цитаты из поля "txt".

2.) Создаём кнопку "btn", при клике по которой будет выводится новая случайная цитата. Кнопку желательно сделать анимированной.

3.) На главной временной шкале пишем код.

Код ActionScript 2.0:

/* Создаём массив и записываем в массив афоризмы и их авторов (афоризмы взяты с ресурса www.aforizm.info). */ var arr = new Array(['В минуту смерти эгоизм претерпевает полное крушение. Отсюда страх смерти. Смерть поэтому есть некое поучение эгоизму, произносимое природой вещей.','Артур Шопенгауэр'],['Важно не то, как человек умирает, а то, как он живет.','Сэмюэл Джонсон'],['Во имя добра и любви человек не должен позволить смерти овладеть его мыслями.','Томас Манн'],['Все знают, что смерть неизбежна, но так как она не близка, то никто о ней не думает.','Аристотель'],['Всего ошибочнее мерить жизнь мерою смерти.','Люк де Клапье Вовенарг'],['Да, человек смертен, но это было бы еще пол беды. Плохо то, что он иногда внезапно смертен, вот в чем фокус.','Михаил Булгаков'],['Давайте жить так, чтобы даже гробовщик пожалел о нас, когда мы умрем!','Марк Твен'],['Жизнь - это песенка, а припев ее - смерть.','Виктор Гюго'],['Заботы о погребении, устройство гробницы, пышность похорон – все это скорее утешение живых, чем помощь мертвым.','Аврелий Августин'],['Заметьте... как мало действует приближение смерти на сильных духом, ибо каждый из них до конца остается самим собой.','Фрэнсис Бэкон'],['Каждому из нас доступно следующее утешение: смерть так же естественна, как и жизнь, а там, что будет, - это мы увидим.','Артур Шопенгауэр'],['Каждый умирает в одиночку.','Ханс Фаллада'],['Какое счастье вовремя умереть для человека, не умеющего в свой час ни сойти со сцены, ни идти вперед.','Александр Герцен'],['Люди боятся смерти по той же причине, по которой дети боятся темноты, потому что они не знают, в чем тут дело.','Фрэнсис Бэкон'],['Мы украсили бы любые похороны, но для более веселых торжеств не годились.','Марк Твен'],['Мысль о смерти более жестока, чем сама смерть.','Боэций'],['Не бойся последнего дня, но и не призывай его.','Марциал'],['Ни на солнце, ни на смерть нельзя смотреть в упор.','Франсуа Ларошфуко'],['Ничто, кроме смерти, не может примирить зависть с добродетелью.','Фрэнсис Бэкон'],['Он был великим патриотом, гуманным человеком, истинным другом, - если, конечно, это правда, что он умер.','Вольтер'],['Самоубийца в одно и то же время бывает и очень труслив и очень смел: он не смеет бороться со временем, но не боится вечности.','Пьер Буаст'],['Смерти можно бояться или не бояться - придет она неизбежно.','Иоганн Вольфганг Гете'],['Только трусы боятся смерти – геройской смерти. А обыкновенной смерти? Ее каждый боится, даже герой. Таков уж закон природы.','Иоганн Вольфганг Гете'],['Уничтожение одного есть рождение другого.','Аристотель'],['Что не убивает меня, делает меня сильнее.','Фридрих Ницше'],['Что является спасением для одного, губит другого.','Даниель Дефо'],['Я много думал о смерти и нахожу, что это - наименьшее из зол.','Фрэнсис Бэкон'],['Я отправляюсь в свое последнее путешествие. Я совершаю огромный прыжок в темноту.','Томас Гоббс'],['Я умираю, как жил, - не по средствам.','Оскар Уайльд']); /* Функция rand() выбирает из массива случайный афоризм и показывает его в текстовых полях. */ function rand(){ var r = Math.floor(Math.random()*arr.length); txt.text = arr[r][0]; author.text = arr[r][1]; } /* Кнопка btn обновляет афоризм. */ btn.onPress = function(){ rand(); this.play(); } /* Запускаем функцию rand(), чтобы флеш-ролик показал бы нам случайный афоризм ещё до нажатия кнопки btn. */ rand();

В данном примере массив "arr" - это двухмерный массив, каждый элемент которого тоже является массивом. Структура массива следующая:

var arr = new Array(['афоризм_1','автор_афоризма_1'],['афоризм_2','автор_афоризма_2']);

Размеры массива лимитированы возможностями языка, но лимит достаточно велик.

Случайный афоризм извлекается из массива с помощью генератора случайных чисел по следующей схеме:

номер_вложенного_массива = Math.floor(Math.random() * длинна_массива);

В принципе, всё довольно просто, но на всякий случай исходник прилагается.

А вот один из возможных результатов:

Автор: admin

Дата добавления: 2011-07-28

Просмотров: 2696

Рейтинг поста: +4-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2013-04-01
Заработало!=)
Большущая благодарность!
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-04-01
Я вам один вариант уже ниже приводил. Ещё так можно сделать:

var arr = new Array([8,[1,2,4]], [9,[1,3]], [16,[2,4,8]]);
function rand(){
var r_1:Number = Math.floor(Math.random()*arr.length);
var r_2:Number = Math.floor(Math.random()*arr[r_1][1].length);
txt_1.text = arr[r_1][0];
txt_2.text = arr[r_1][1][r_2];
}
btn.onPress = function(){
rand();
this.play();
}
rand();
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2013-04-01
В принципе, все то самое, как в уроке, только с числами: в поле, где размещается цитата оставляем 1 число, а в поле, где должно стоять имя автора, ставится рандомно число из того же блока.
var arr = new Array([8,1,2,4], [9,1,3], [16,2,4,8]);
function rand(){
var r = Math.floor(Math.random()*arr.length);
txt.text = arr[r][0];
author.text = arr[r][?];
}
btn.onPress = function(){
rand();
this.play();
}
rand();
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-04-01
Что-то очень непонятно вы формулируете свою мысль... Может вам это надо:

var arr = new Array(8, 1, 2, 4);
function randFunc() {
var rand:Number = Math.floor(Math.random()*(arr.length-1))+1;
randNum.text = arr[rand];
}
randFunc();
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2013-04-01
Не случайное число из всего массива, а случайное число из трех чисел, стоящих после первого) первое так и записывается в txt.text, а вот как из оставшихся трех выбрать случайное и записать во второе поле? Создать второй массив - не подходит, нужно при таких условиях. Возможно ли это?
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2013-03-31
Можно так:

var arr = new Array(8, 1, 2, 4);
function randFunc() {
var rand:Number = Math.floor(Math.random()*arr.length);
randNum.text = arr[rand];
}
randFunc();
Комментатор
Комментарий добавил(а): Ched
Дата добавления: 2013-03-31
Подскажите, как вывести в поле author случайное число из трех заданных.
var arr = new Array([8,1,2,4]);
function rand() {
var r = Math.floor(Math.random()*arr.length);
txt.text = arr[r][0];
author.text = arr[r][?];
}
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

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

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика