JSFL: จะเข้าถึงคีย์เฟรม Motion Tween ใน Adobe Flash CS5 ได้อย่างไร

นักสร้างแอนิเมชันของเราสร้างคลิปภาพยนตร์ที่ซับซ้อนมากใน Adobe Flash CS5 ซึ่งมีเลเยอร์มากกว่า 50 เลเยอร์, ​​Motion Tweens และ 3D Tweens น่าเสียดายที่เธอวางองค์ประกอบทั้งหมดไว้ทางด้านขวามากเกินไป 680 พิกเซล และอยู่ด้านล่างมากเกินไป 400 พิกเซล

เรากำลังพยายามค้นหาวิธีย้ายองค์ประกอบทั้งหมดในทุกเลเยอร์โดยไม่ทำให้แอนิเมชั่นเสียหาย เราลองใช้สคริปต์ JSFL ชื่อ "MoveRegpoint" แต่ไม่สามารถจัดการคีย์เฟรม Motion Tween (เพชร) ได้อย่างถูกต้อง ตอนนี้ฉันกำลังพยายามเขียน JSFL ด้วยตัวเอง

ฉันจะทราบได้อย่างไรว่าเฟรมเป็น Motion Tween และเฟรมนั้นเป็นคีย์เฟรมหรือไม่ ดูสคริปต์ปัจจุบัน:

// get the selected Element
var vElement = fl.getDocumentDOM().selection[0];

// get the Timeline of the Element
var vTimeline = vElement.libraryItem.timeline;

// loop over the Timeline's Layers
var vLayersLength = vTimeline.layers.length;
for (var i=0; i<vLayersLength; ++i) {
    var vLayer = vTimeline.layers[i];

    // loop over each Layer's Frames
    var vFramesLength = vLayer.frames.length;
    for (var j=0; j<vFramesLength; ++j) {
        var vFrame = vLayer.frames[j];

        if(vFrame.isMotionObject()) {
            // DOES NOT WORK, startFrame is always 0
            if(vFrame.startFrame == j) {}
        }
    }    
}

เพื่อให้ชัดเจน: frame.startFrame จะเป็น 0 เสมอ เนื่องจาก Motion Tween เริ่มต้นที่เฟรม 0 มีเพชรอยู่ที่เฟรม 12, 27 และ 49 ที่กำหนดการเคลื่อนไหว ฉันต้องการทราบว่ากรอบมีเพชรและเข้าถึงข้อมูลในเพชรเหล่านี้หรือไม่

พอล


person Paul Houx    schedule 16.02.2012    source แหล่งที่มา
comment
เธอจะไม่รวมทั้งหมดนั้นไว้ในคลิปภาพยนตร์ที่สามารถเปลี่ยนตำแหน่งได้ง่าย ๆ ได้ไหม? หากภาพเคลื่อนไหวทั้งหมดอยู่ในรากของเอกสาร เธอยังสามารถคัดลอกเนื้อหาทั้งหมดได้ (โดยใช้การแก้ไขหลายเฟรม) ลงในคลิปภาพยนตร์ที่ว่างเปล่า   -  person George Profenza    schedule 29.02.2012


คำตอบ (2)


มีส่วนขยายแฟลชที่เรียกสิ่งนี้ได้อย่างสมบูรณ์แบบว่า New Anim Clip - คุณสามารถหาได้จาก Toon Monkey: http://toonmonkey.com/extensions.html

ฉันใช้มันตลอดเวลาโดย: -เลือกเฟรมทั้งหมดที่ฉันต้องการในคลิปใหม่ของฉัน (บนหลายเลเยอร์) จากนั้นคลิกตัดเฟรมจากเมนูคลิกขวาบนไทม์ไลน์ -คลิกคำสั่ง NewAnimClip -ตั้งชื่อสัญลักษณ์ใหม่และเลเยอร์ด้วย คำอธิบาย -คลิกในเฟรมแรกของคลิปใหม่และวางเฟรม

เอาล่ะ! คลิปใหม่ที่คุณสามารถปรับขนาดและเปลี่ยนตำแหน่งให้สอดคล้องกับไทม์ไลน์ดั้งเดิมได้!

person Kevin Colgan    schedule 31.10.2012

หากต้องการตอบคำถามเดิม คุณสามารถเข้าถึงการเคลื่อนไหวทวีนคีย์เฟรมได้โดยใช้ frame.getMotionObjectXML() และ frame.setMotionObjectXML() XML นี้มีข้อมูลคีย์เฟรมที่คุณกำลังมองหา (คีย์เฟรมเพชร)

person user1671392    schedule 01.04.2020