質問: fl.findObjectInDocByType(type, doc) fl.trace(elements.length) elements.forEach(function(ele) { fl.trace(ele.obj.name) }) } ``` ### 試したこと 第一引数には検索するエレメントの型を表すストリングが入るのですが、 指定できる値のうち、"text"と"shape"はエラーが発生せずに動作しました。 ### 補足情報(FW/ツールのバージョンなど) 環境: Adobe Animate CC 2017 参考にしたサイト: fl.findObjectInDocByType() element.elementType
回答: ほんとだ、これはバグじゃないかな あるいは戻り値の配列の参照が入れ子になるのを嫌って instanceの指定をできないようにしているのを書いてないとか 幸いインスタンスのelement.elementTypeはちゃんとinstanceっぽいので ``` function getAllInstanceElementInDoc(doc) { var rtn = []; var tl=doc.getTimeline(); for (var i = 0; i < tl.layers.length; i++) { var lyr=tl.layers[i]; for (var j = 0; j < lyr.frames.length; j++) { var frm=lyr.frames[j]; for (var k = 0; k < frm.elements.length; k++) { var ele=frm.elements[k]; if (ele.elementType == 'instance') { rtn.push(ele); } } } } return rtn; } ``` みたいな関数でも作って対処するしかないんじゃないですかね Adobeって使ってるユーザーが少ないであろう機能へのサポートがなんか杜撰なんですよね まあ、でも戻り値の配列の参照が入れ子になる可能性があるというのは 正直それなりに面倒なことになるので、 そういう仕様であったとしてもそれはそれで仕方ないかな ともちょっと思ったり思わなかったり