の選択が必要です。選択テキストや形状失敗:「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
ました。
このエラーはなぜ発生しますか?それを修正するために何かできることはありますか?