Просмотр полной версии : Магазин
Народ!Помогите, пожалуйста!
Создаю игру, в ней будет магазин.В первом кадре пишу код.
myVar = "сок";
but.onRelease = function (){
if (tf1.text != myVar2){
tf1.text = myVar }
else if(tf1.text == myVar2 && tf2.text != myVar2){
tf2.text = myVar}
else if(tf1.text != myVar){
tf1.text = myVar }
else if(tf1.text == myVar && tf2.text != myVar2){
tf2.text = myVar}
}
myVar2 = "колбаса";
but2.onRelease = function (){
if (tf1.text != myVar){
tf1.text = myVar2 }
else if(tf1.text == myVar2 && tf2.text != myVar){
tf2.text = myVar2}
else if(tf1.text == myVar2 && tf2.text != myVar2){
tf2.text = myVar2}
else if(tf1.text == myVar && tf2.text != myVar){
tf2.text = myVar2}
}
Есть два динам. текста(tf1 и tf2) и две кнопки(but и but2)
Не получается, чтобы при нажатии дважды на сок, в обоих динам. текстах появлялось слово сок.То же самое и с колбасой.
не вполне ясно что надо, может так..
but.onRelease = function() {
(tf1.text==myVar1) ? tf2.text=myVar1 : tf1.text=myVar1;
};
but2.onRelease = function() {
(tf1.text==myVar2) ? tf2.text=myVar2 : tf1.text=myVar2;
};
Уже сам догадался что к чему, но все равно спасибо!Понял то, что это не удобно.У меня в магазине будет еще около 5 продуктов.Тогда код получится ОГРОМНЫЙ.Можно это как-нибудь сделать по-другому?
Например с массивом.
var products:Array=["first","second","third"];
var labels:Array=[tf1,tf2,tf3,tf4];//текстфилды (сколько надо)
var buttons:Array=[but1,but2,but3];//кнопки (по числу продуктов)
function butPress(){
var n:Number=this.tag;
var s:String=products[n]
for(var i=0;i<labels.length;i++) if(s!=labels[i].text) break;
if(i<labels.length)labels[i].text=s;
}
for(var i in buttons){
buttons[i].tag=i;
buttons[i].onPress=butPress;
}
Ага!Спасибо!Работает.Только еще как сделать, если нажал на кнопку first
он вылез в первом текстфилде, а если потом на вторую кнопку, слово sekond вылезло во втором текстфилде?С третьим аналагичная ситуация.
сделать можно как угодно: сам видишь, что это нетрудно..
но нужна четкая и однозначная логика действий, которую у тебя уловить сложно: "а если потом на вторую кнопку" - а если не потом, а до.., а если в первом текстфилде не first, а third, что если все текстфилды уже заняты, то все: больше нет выбора?.. и еще много таких если..
продумай логику/алгоритм приложения, по нему и пиши и все встанет на свои места само собой..
вариант (при выборе сверх запланированных мест, выкидывает первый):
var products:Array=["first","second","third"];
var choices:Array=[];
var labels:Array=[tf1,tf2,tf3,tf4];//текстфилды (сколько надо)
var buttons:Array=[but1,but2,but3];//кнопки (по числу продуктов)
function butPress(){
choices.push(products[this.tag]);
if(choices.length>labels.length) choices.shift();
for(var i in labels) labels[i].text=choices[i] || "";
}
for(var i in buttons){
buttons[i].tag=i;
buttons[i].onPress=butPress;
}
Я просто новичок во flashе.Смысл в том, что человек приходи в магазин и выбирает, что хочет в любом порядке.А когда все текстфилды заняты то все: выбора больше нет.Я уже долго не могу осуществить свою идею.Вот.Обратился к вам!
для "выбора больше нет"
function butPress(){
if(choices.length==labels.length) return;
choices.push(products[this.tag]);
for(var i in labels) labels[i].text=choices[i] || "";
}
короче говоря, вот, что мне надо.Только продуктов побольше и код попроще.(не слишком нагло?;) )
сори, не буду и смотреть..
дело не в наглости, а в бессмысленности подхода "сделайте за меня"..
Ясно.Я попробовал сделать, что хотел с помощью твоего кода, но ничего в нем не понял.Увы!
Ну так разбирайтесь в коде! Ваша задача — вам её и реализовывать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.