jsfl: доступ к символу для анимации внутри него - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть несколько символов на сцене, прямоугольники и круг. символов на сцене Я хочу попасть в круг и анимировать символы в нем, используя jsfl.Я видел эту ссылку Доступ к дочерним / вложенным видеоклипам с помощью JSFL AS3 CS5.5 и на основании этого написал этот код.

fl.outputPanel.clear();
var dom = fl.getDocumentDOM();
var tl = dom.getTimeline();
var curFrame = tl.currentFrame;
var curLayer = tl.findLayerIndex('Layer 2');

tl.setSelectedFrames(curFrame,curFrame);
dom.selection = [tl.layers[curLayer].frames[curFrame]];
//dom.enterEditMode('inPlace');

var tle = dom.timelines[0];
var elm = tle.layers[curLayer].frames[curFrame].elements[0];
var lt = elm.libraryItem;
var ctl = lt.tle;//????
fl.trace(ctl.layers[curLayer].frames[curFrame].elements);

Теперь я предполагаю, что я должен что-то связать, потому что я получаю это 'typeerror: ctl не имеет свойств'. сообщение об ошибке Пожалуйста, помогите мне с предложениями о том, как добиться того, чего я хочу.заранее спасибо

1 Ответ

0 голосов
/ 28 февраля 2019

Когда вы устанавливаете var tle=dom.timelines[0];, вы, по сути, говорите: «Позвольте мне теперь использовать tle вместо dom.timelines[0]».

Так что сообщение об ошибке говорит вам, что эта вещьне существует: dom.timelines[0].layers[curLayer].frames[curFrame].elements[0].libraryItem.tle

Что правильно.libraryItem является объектом типа [SymbolItem], и у SymbolItems нет дочерних элементов с именем tle.Хотя у них есть ребенок по имени timeline, что вполне вероятно, что вы хотите.

Кроме того, последнее утверждение trace не будет означать то, что вы ожидаете, потому что вы находитесь на временной шкале ctl ине tl график времени.Для тестирования вы можете начать с fl.trace(ctl.layers[0].frames[0].elements);

Справочный документ здесь: https://help.adobe.com/archive/en_US/flash/cs5/flash_cs5_extending.pdf

...