2017-02-08 5 views
0

の選択が必要です。選択テキストや形状失敗:「enterEditModeは」私は現在のFlashドキュメント内の各テキスト要素を選択する必要があり、次の(役に立たない)コードを、持っている

fl.outputPanel.clear(); 
var textFieldArray = fl.findObjectInDocByType("text", fl.getDocumentDOM()); 
fl.trace(textFieldArray.length); 
for (var i=0; i < textFieldArray.length; i ++){ 
    fl.selectElement(textFieldArray[i]); 
} 

驚くべきことに、これはエラーになります

ファイル "ObjectFindAndSelect.jsfl"の232行目: 'enterEditMode'には選択が必要です。

ファイルを見ると、selectElement関数のコードがある

flash.selectElement = function(elementData, editSymbol) 
{ 
    if (elementData.parent != undefined) 
    { 
     // go up one level 
     flash.selectElement(elementData.parent, true); 
    } 
    else 
    { 
     FlashUtils_debugString("flash.selectElement function: element is on the main timeline"); 
    } 

    // select the layer, keyframe and element in the symbol instance 
    var layerIndex = FlashUtils_getIndexOfObject(elementData.timeline.layers, elementData.layer); 
    var frameIndex = FlashUtils_getIndexOfObject(elementData.layer.frames, elementData.keyframe); 
    if ((layerIndex >= 0) && (frameIndex >= 0)) 
    { 
     // go to obj keyframe 
     elementData.timeline.setSelectedLayers(layerIndex); 
     elementData.timeline.setSelectedFrames(frameIndex, frameIndex); 

     // clear all selections in keyframe 
     fl.getDocumentDOM().selectNone(); 

     // select the obj 
     elementData.obj.selected = true; 

     if (editSymbol) 
     { 
      // switch to editing the symbol item associated with instance 
      document.enterEditMode('inPlace'); 
     } 
    } 
    else 
    { 
     FlashUtils_debugString("flash.selectElement function: parent: failed to get valid layerIndex: " + layerIndex + " or frameIndex: " + frameIndex); 
    } 
} 

それは、これが動作する必要があることを私には明らかと思われます。オブジェクトのselectedプロパティは、document.enterEditModeの呼び出しの直前にtrueに設定されます。この機能を試すと、elementData.obj.selected = true;行の直後に行を追加して、選択が空であるかどうかを調べました。コードは次のように見えた:

elementData.obj.selected = true; 
fl.trace(fl.getDocumentDOM().selection.length); 

このコードの出力は0ました。

このエラーはなぜ発生しますか?それを修正するために何かできることはありますか?

答えて

0

あなたは、document.selectionを使用してシンボルインスタンスを選択することしかできないと思います。 fl.getDocumentDOM()を使用する必要があります。selection = [シンボル要素の配列]

関連する問題