0

ユーザーが生成した値を追跡するフラッシュ アプリケーションを作成しようとしています。アプリは基本的に、ユーザーがアイテムの名前とその価格を入力できるようにする必要があります。次に、合計コストを合計して、ユーザーに合計値を表示する必要があります。値を一緒に追加する方法はおそらく理解できますが、ユーザーがリストを作成して保存できるようにする方法はよくわかりません。誰かが私をチュートリアルに向けたり、正しい方向に向けたりすることはできますか?

変数を使用して、ユーザーが入力した数値を追加して合計を出しています。最初の問題は、actionscript 3.0 がテキストの変数を許可しないことです。これを修正するために2.0に変換しました。2 つ目の問題は、アプリをテストして値を入力し、[送信] をクリックすると、合計値フィールドに NaN が表示されることです。値を追加しない理由はありますか?

送信ボタンに使用したコードは次のとおりです。

on (release) { total = Number(rent) + Number(food) + Number(travel) + Number(entertainment) + Number(bills); }

何か不足していますか?

入力テキストのインスタンス名を指定してから変数を指定できますか? これについてはどうすればいいですか?

助けてくれてありがとう!

4

3 に答える 3

0

これがコードでどのように機能するかを確認する必要があります。actionscriptのリストは、配列、ベクトル、辞書、さらにはオブジェクト内に格納できます。

 Var myList:Array = [];
 myList.push({name: "item 1", cost: 5 });
 myList.push({name: "item 2", cost: 7.5 });

リストから「アイテム1」の「製品」を取得する場合は、そのための関数を作成する必要があります。getProductByNameと呼びます。

 function getProductByName(name:String):Object
 {
    for each(var product:Object in myList)
    {
       if (product.name === name) return product; 
    }
    return null; // no match found
 }

この関数は次のように呼び出すことができます。

 var product = getProductByName("item 1");
 trace(product.cost); // 5

そして、あなたは製品を変えることができるので、それをより高価にしましょう

 product.cost += 1;
 trace(product.cost); // 6

楽しむ!クラスを使用している場合は、パブリック名とコストを使用して製品用にクラスを作成します。その場合は、適切なタイプで確実に機能するように、ベクトルを使用することをお勧めします。

于 2012-11-26T06:37:25.393 に答える
0

これが、アクションスクリプト3.0の問題を修正したものです。

myButton.addEventListener(MouseEvent.CLICK, addThem);

function addThem(e:MouseEvent)
{
    totalField.text = String ( Number(field1.text) + Number(field2.text) + ....);
}

また、インスタンスに適切な名前を付ける必要がありました。

于 2012-12-05T21:10:02.933 に答える
0

たとえばobject array

var stack:Array = new Array();

次に、アイテム名をプッシュすると、ユーザーが次のように入力すると、その配列にコストがかかります

stack.push({item:AAA, cost:xx});

その配列でいつでもリストを生成できるようにします。

于 2012-11-26T06:26:34.997 に答える