![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 158
|
Возникла необходимость сделать следующее. Есть 100 фраз, при нажатии на кнопку запускается скрипт, который выбирает из этих 100 фраз ( 100 фреймов, в каждом одна фраза ) три случайных ( уникальных, не повторяющихся ), и выводит их в указанное место. Далее жмём на одну фразу, открывается нужный фрейм, где даётся полное описание данной фразы, пояснения к ней, прочитав его, жмём кнопку \"Вернуться\", и возвращаемся к трем фразам установленным в нужном месте, т.е. как в браузере кнопка \"Назад\", просто возвращаемся на шаг назад.
Таким образом получается, нужно 100 фреймов с фразами, плюс ещё 100 с их пояснениями, и скрипт, который будет выводить по три уникальных фразы при его запуске и размещать их в определённом месте, после возможность прочитать пояснения к каждой фразе и при нажатии на кнопку вернуться ко всем трём. Как это сделать, понятия не имею, умею делать многое, но только не программировать, пожалуйста, помогите, готов отблагодарить за помощь. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 158
|
Цитата:
1. 100 фреймов, в каждом по 1 фразе. 2. ещё 100 фреймов, в каждом пояснения к предыдущим 100 фразам. 3. скрипт, который выбирает из 100 фраз из первого пункта 3 любые без повторения и помещает их в указанное место во флешке, как бы в место вывода результата. 4. скрипт или команда, которая возвращает на шаг назад после прочтения одного из 100 фреймов из пункта 2 ![]() Таким образом человек во флешке жмёт на кнопку, перед ним появляются три фразы, он жмёт на одну из них, видит её подробное описание, прочитав, жмёт на кнопку \"вернуться\", и возвращается на шаг назад, где видит перед собой три фразы. Далее жмёт на вторую фразу и читает её подробности, опять возвращается, жмёт на третью фразу и читает её подробности, конец ![]() |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Да вы маньяк создавать 200 фремов не понятно для чего, все делается гораздо проще
![]() Delegate = {create:function (obj:Object, func:Function, arg:Array):Function {
var f = function () {
var targetTemp = arguments.callee.target;
var funcTemp = arguments.callee.func;
var argTemp = arguments.callee.arg;
return funcTemp.apply (targetTemp, argTemp);
};
f.target = obj;
f.func = func;
f.arg = arg;
return f;
}};
//// создаем 100 фраз и их описания
//// на самом деле тут должны быть ваши фразы и их описания
var array:Array = new Array ();
var arrayID:Array = new Array ();
for (var i:Number = 0; i < 100; i++) {
arrayID.push (i);
array.push (["фраза " + i, "описание фразы " + i]);
}
//// функция возвращающая массив с перемещанным содержимым
function getNewRandom (arrayA:Array, len:Number):Array {
if (len == undefined || len > arrayA.length) {
len = arrayA.length;
}
var arrayB:Array = arrayA.concat ();
var arrayC:Array = new Array ();
for (var i:Number = 0; i < len; i++) {
var rnd:Number = Math.floor (Math.random () * arrayB.length);
arrayC.push (arrayB.splice (rnd, 1));
}
return arrayC;
}
//// функция для создания кнопок с текстовыми полями
function createButton (name:String, x:Number, y:Number, w:Number, h:Number, str:String, center:String):MovieClip {
var mc:MovieClip = this.createEmptyMovieClip (name, this.getNextHighestDepth ());
mc._x = x;
mc._y = y;
mc._visible = false;
var txt = mc.createTextField ("txt", 0, 0, 0, w, h);
var fmt:TextFormat = new TextFormat ();
fmt.align = center;
fmt.font = "Arial";
fmt.size = 14;
txt.setNewTextFormat (fmt);
txt.border = true;
txt.borderColor = 0x999999;
txt.selectable = false;
txt.text = str;
return mc;
}
//// выбираем три случайных фразы
function select3Phrase () {
//// берем случайные 3 фраза без повтора
arrayPhrase = getNewRandom (arrayID, 3);
mcStart._visible = false;
for (var i:Number = 0; i < 3; i++) {
this["mcP" + i]._visible = true;
this["mcP" + i].txt.text = String (array[arrayPhrase[i]][0]);
this["mcP" + i].onRelease = Delegate.create (this, selectPhrase, arrayPhrase[i]);
}
}
//// выбираем фразу из 3-х доступных и показываем ее описание
function selectPhrase (id) {
trace (id);
for (var i:Number = 0; i < 3; i++) {
this["mcP" + i]._visible = false;
}
mcBack._visible = true;
mcDesc._visible = true;
mcDesc.txt.text = String (array[id][1]);
}
//// вернуться к выбору из 3-х фраз
function back () {
for (var i:Number = 0; i < 3; i++) {
this["mcP" + i]._visible = true;
}
mcBack._visible = false;
mcDesc._visible = false;
}
///// создаем интерфейс
var arrayPhrase:Array;
var mcStart:MovieClip = createButton ("mcStart", 50, 100, 150, 20, "Выбрать фразы", "center");
var mcP0:MovieClip = createButton ("mcP0", 220, 100, 100, 20, "", "center");
var mcP1:MovieClip = createButton ("mcP1", 220, 130, 100, 20, "", "center");
var mcP2:MovieClip = createButton ("mcP2", 220, 160, 100, 20, "", "center");
var mcBack:MovieClip = createButton ("mcBack", 340, 100, 100, 20, "Назад", "center");
var mcDesc:MovieClip = createButton ("mcDesck", 340, 130, 200, 200, "");
mcStart.onRelease = Delegate.create (this, select3Phrase);
mcBack.onRelease = Delegate.create (this, back);
mcStart._visible = true;
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 158
|
Цитата:
Описания довольно объёмные, нужно форматирование для них, т.е. не сплошной текст, абзацы есть, и в некоторые нужно добавлять изображения, можно это сделать в варианте созданном Вами?Схему, что я описал, придумал потому, что в некоторые описания нужно вставлять изображения, варьировать текст с изображениями, а дизайн кнопок и вывод трёх фраз нужно вписать в дизайн, поэтому мне было бы удобнее проработать каждый фрейм отдельно. Пожалуйста, объясните как сделать по моей схеме, если можно. |
|
|||||
|
лан, если не понял что писал iNils, тогда понятнее будет так:
создавать не 100 фраз со 100 описаниями, массив из 100 элементов из фраз нужных и массив из 100 элементов из описаний для фраз и в 1 фрейме все это организовать
__________________
"We Are The Champions My Friends!" Queen |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Я б порекомендовал все фразы с описаниями в xml вынести
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 158
|
Вопрос не решён, помогите, пожалуйста.
|
|
|||||
|
Регистрация: Sep 2005
Сообщений: 158
|
Просто нужен скрипт, который будет выбирать из заданного кол-ва фреймов три без повторения и выводить их в указанное место во флешке. К этому нажен возврат, не знаю из чего его сделать, чтобы после прочтения одного из трёх результатов можно было вернуться к этим трём результатам, т.е. как бы кнопка \"Назад\". Пожалуйста, выручите.
|
|
|||||
|
не понимаю почему ты хочешь 3 фрейма отображать в 1, это ж бред?
массивами все проще всего 1 кадр и 2 массива
__________________
"We Are The Champions My Friends!" Queen |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|