ActionScript 3では、図の中に純粋なテキストとしてデータを出力するプロジェクトで問題があります。しかし、これは問題ではありません。問題は、ユーザーが表示したいデータのタイプを変更したときです。私は、現在表示されている図の列を削除し、新しい列を追加します。しかし、私のコードでは、すべての列が削除されているため、ダイアグラムはまったくありません。シーンのオブジェクトのインスタンスだけを削除する
私はこれをFlash CS5ですべて行いました。この列は、ステージに追加したオブジェクトのインスタンス(四角形)です。すべてのインスタンスがコンテナ「コンテナ」に追加されます。作品
var container = new Sprite(); // The container for my diagram
function emptyContainer() {
if (container.numChildren > 0) {
container.removeChildAt(0);
}
}
どの:私はそれらを削除し、私が使用して新しいものを追加したいときに。
ユーザー入力に基づいて異なる列を追加するswitch文があります。オブジェクト(矩形)の名前は「灰色」です。インスタンスの名前は「シュトルペ」 (つまり、これらの奇妙な言葉との契約ですので、私は、道によるノルウェー)午前
function fChange(event:Event) {
textToBeReturned = "";
switch (treCbox.selectedItem.label) {
case "Furu":
for (var a = 1; a < table.length; a++){
textToBeReturned += "I år: " + table[a][0] + " - " + table[a][1] + " millioner trær." + "\n";
// Diagram
var stolpe = new soyle;
stolpe.width = table[a][1];
stolpe.x = 20;
stolpe.y = 100 + (a * 30);
container.addChild(stolpe);
// Description for the columns
var textbox = new TextField;
textbox.text = "År " + table[a][0];
textbox.x = stolpe.width + 30;
textbox.y = stolpe.y;
container.addChild(textbox);
}
break;
case "Gran":
for (var b = 1; b < table.length; b++){
textToBeReturned += "I år: " + table[b][0] + " - " + table[b][2] + " millioner trær." + "\n" ;
var stolpe = new soyle;
stolpe.width = table[b][1];
stolpe.x = 20;
stolpe.y = 100 + (b * 30);
container.addChild(stolpe);
// Description for the columns
var textbox = new TextField;
textbox.text = "År " + table[b][0];
textbox.x = stolpe.width + 30;
textbox.y = stolpe.y;
container.addChild(textbox);
}
break;
case "Lauvtre":
for (var c = 1; c < table.length; c++){
textToBeReturned += "I år: " + table[c][0] + " - " + table[c][3] + " millioner trær." + "\n" ;
var stolpe = new soyle;
stolpe.width = table[c][1];
stolpe.x = 20;
stolpe.y = 100 + (c * 30);
container.addChild(stolpe);
// Description for the columns
var textbox = new TextField;
textbox.text = "År " + table[c][0];
textbox.x = stolpe.width + 30;
textbox.y = stolpe.y;
container.addChild(textbox);
}
break;
}
txtReturn.text = textToBeReturned;
};
私はちょうどそれらを削除するには、すべての子を除去するための私の機能を配置する場所を不思議です以前に追加された子供。私が関数を配置する場所(fChangeの始めに、各ケースの始めに)には、新しいものか古いものかを示すダイアグラムはありません。
もちろんデータが入っている配列はありますが、私はそれは無関係なので投稿しません。
お時間をいただきありがとうございました! :)
チップをありがとうが、動作しません。 fChangeの先頭に関数emptyContainerを配置すると、常にコンテナ内のすべてが削除されます。 私はwhileループの中にテストを入れました、ありがとう! – Esso
には、addChild()を使用して、いつでもステージにコンテナが追加されていますか? – francis
私たちはそれを持っています。どうもありがとう! – Esso