1

画像をクリックすると、選択した画像として前面に表示されるはずですが、その画像のインデックス値を変更したくありません

canvas1.setChilIndex(Image(event.target), numChildern-1) 

上記の行は、選択した画像のインデックス値を変更し、最大-1 に設定しています (例: インデックス値として 5-1 = 4)。画像の同じインデックスを保持する上記の行の代替が必要です。

どんな助けでも大歓迎です。

4

3 に答える 3

1

あなたができることは、クリックハンドラーにクリックされたアイテムのインデックスを保存し、次のクリックで(または必要なときに)アイテムを前のインデックスに戻すことです。

var previousImg:Image;
var previousIndex:int;

function selectImage(img:Image):void {
    deselectImage(); //if there is already a selected image, put it back before moving this new one to the top

    previousImg = img;    
    previousIndex = canvas1.getChildIndex(img);
    canvas1.addChild(img); //brings it to the front
}

function deselectImage():void {
    if(previousImg){
        canvas1.setChildIndex(previousImage, previousIndex);
        previousImg = null;  //null the var in case you call this method manually
    }
}

したがって、クリックハンドラーで、質問の行の代わりにこれを実行します。

selectImage(Image(event.target));

このメソッドを使用すると、を呼び出すたびselectImageに、ラストクリックが元の場所に戻ります。deselectImage必要に応じて、手動で呼び出すこともできます。

于 2012-09-26T18:28:03.030 に答える
0

あなたの質問を見ると、LondonDrugs と Roman が上で提案したのと同じ考えを持っています。しかし、あなたの質問は非常に単純なので、答えることはできません。

申請の流れを知らないとかなりややこしい状況です。

たとえば、イメージを選択した後で実行時にキャンバスにイメージを追加する場合、ロールバックするインデックスの順序はどれですか?

私の提案:インデックスの順序を維持したいカットポイントを設定し、ループを使用してすべての画像のインデックスを見つけて配列に保持することができます。ユーザーが演奏を終了したら、インデックスをカット ポイントに戻します。

于 2012-09-27T01:30:52.557 に答える
0

フラッシュでは子インデックスが描画順序の唯一の基準であるため、不可能です。

画像を追加する順序を保持したい場合は、たとえば配列に画像を保存すると、次のすべてのアイテムに追加順にインデックスが付けられます。

于 2012-09-26T17:55:23.277 に答える