2017-02-08 15 views
0

나는 현재 Flash 문서의 각 텍스트 요소 선택해야 다음 (쓸모없는) 코드가이 오류 결과, 놀랍게도선택 텍스트 나 모양 실패 : "enterEditMode은"선택을 요구

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 = [심볼 요소 배열]