3

このコードは Java コードではなく、ActionScript 開発者から何の回答も得られません。だから私はそれをJavaでタグ付けしましたが、アクションスクリプトはJavaに似ており、これはOOPの質問です.

私はグリッド データを使用しており、次のタスクを達成したいと考えています。

方法 1: 各行を乗算したい Row1num1 * Row1num2 など、

var Row1num1:String;
var Row2num2:String;

var Row2num1:String;
var Row2num2:String;

var Row3num1:String;
var Row3num2:String;

var event1:Object={num1:Row1num1,num2:Row1num2};
var event2:Object={num1:Row2num1,num2:Row2num2};
var event3:Object={num1:Row3num1,num2:Row3num2};

then add them to a dataGrid
dataGrid.columns =["num1","num2"];
dataGrid.addItem(event1);
dataGrid.addItem(event2);
dataGrid.addItem(event3);

しかし、この方法を使用すると、20行ある場合、変数が多くなり、明らかに悪いです。

方法 2: この方法では、実行時にグリッド データ行を作成し、それらを乗算します。

//button to add rowGrid 
dd.addEventListener(MouseEvent.CLICK,ddd);

var numm:String="34";
function ddd(evt:MouseEvent):void
{
    var event4:Object={num1:Rownum1,num2:Rownum2};
    dataGrid.addItem(event4);
}

しかし、この方法を使用すると、各行データにアクセスして乗算するのに苦労します。

この例は、GPA 計算機を作成していて、各行のクレジット時間を取得し、同じ行のスケール値で乗算したいためです。抽象化がないため、最初の方法は悪いです。

2番目の方法は、コースの数に応じてユーザーに行を追加してもらいたいためです。

私の英語が悪くないことを願っています。

私の質問が投票されないことを願っています。この質問を読んで、何が欠けているかを判断して、それを学ぶことができます

私の問題を解決するために使用できるチュートリアルはありますか?

4

2 に答える 2

0

私はあなたの質問を正しく理解したと思います。どちらにせよやってみます...

したがって、他のほとんどの強く型付けされたオブジェクト指向言語と比較した場合のActionScriptの最も優れた点の1つは、リフレクションがいかに簡単かということです(おそらく、JavaScriptの起源のおかげです)。そうは言っても、できることは「for」ループを使用して配列を作成することです。私が想定しているのは、変数row1Num1row2Num2などがクラスにすでに存在しているということです。それ以外の場合は、明らかに、それらを配列に格納し、そこから新しい配列に読み取る方がはるかに効率的です。とにかく、コードは次のようになります。

方法1:

var eventsArr:Array = [];
for(var i:int = 1; this["row" + i + "Num1"] != undefined /*or i<=length*/; i++){
    eventsArr.push({num1:this["row" + i + "Num1"], num2:this["row" + i + "Num2"]});
} 
for(var j:int = 0; j < eventsArr.length; j++){
    dataGrid.addItem(eventsArr[j]);
}

方法2:

dd.addEventListener(MouseEvent.CLICK,ddd);

var numm:String="34"; //I am assuming this refers to the row number you wanted to add.
function ddd(evt:MouseEvent):void
{
    var event4:Object={num1:this["row" + numm + "Num1"],num2:this["row" + numm + "Num2"]};
    eventsArr.push(event4);
    dataGrid.addItem(event4);
}

お役に立てば幸いです。

于 2012-09-28T00:16:56.843 に答える
0

今のところ最初の方法に取り組んでいますが、何らかの配列が必要なようです。

Actionscript 配列の使用方法に関するリンクを次に示します。

さらに次元が必要な場合は、配列の配列を作成できます。これにより、変数の数を減らすことができます。

于 2012-09-25T20:23:53.473 に答える