JSFL: bagaimana cara mengakses keyframe Motion Tween di Adobe Flash CS5?

animator kami membuat klip video yang sangat kompleks di Adobe Flash CS5, berisi 50+ lapisan, remaja gerak, dan remaja 3D. Sayangnya, dia menempatkan semua elemen 680 piksel terlalu jauh ke kanan dan 400 piksel terlalu jauh ke bawah.

Kami mencoba menemukan cara untuk memindahkan semua elemen di semua lapisan tanpa merusak animasinya. Kami mencoba skrip JSFL yang disebut "MoveRegpoint", tetapi skrip tersebut tidak menangani keyframe Motion Tween (berlian) dengan benar. Jadi sekarang saya mencoba menulis JSFL sendiri.

Bagaimana cara menentukan apakah suatu bingkai adalah Motion Tween dan apakah bingkai tersebut adalah bingkai utama? Lihat skrip saat ini:

// 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) {}
        }
    }    
}

Untuk lebih jelasnya: frame.startFrame selalu 0 karena Motion Tween dimulai pada frame 0. Ada berlian di frame 12, 27 dan 49 yang menentukan gerakan. Saya ingin tahu apakah suatu bingkai berisi berlian dan mengakses data di dalam berlian tersebut.

Paulus


person Paul Houx    schedule 16.02.2012    source sumber
comment
tidak bisakah dia memasukkan semua itu ke dalam klip film yang dapat dengan mudah diubah posisinya? Jika semua animasi berada di root dokumen, dia masih dapat menyalin semua konten (menggunakan Edit Beberapa Bingkai) ke dalam klip video kosong.   -  person George Profenza    schedule 29.02.2012


Jawaban (2)


Ada ekstensi flash yang melakukan hal ini dengan sempurna yang disebut Klip Anim Baru - Anda dapat menemukannya di Toon Monkey: http://toonmonkey.com/extensions.html

Saya menggunakannya sepanjang waktu dengan: -Memilih semua bingkai yang saya inginkan di klip baru saya (pada beberapa lapisan), lalu mengklik Potong Bingkai dari menu klik kanan timeline -mengklik perintah NewAnimClip -memberi nama simbol dan lapisan baru dengan sesuatu yang deskriptif -klik di bingkai pertama klip baru dan Tempel Bingkai

Voila! Klip baru yang dapat Anda ubah ukuran dan posisinya, selaras dengan garis waktu aslinya!

person Kevin Colgan    schedule 31.10.2012

Untuk menjawab pertanyaan awal, Anda dapat mengakses keyframe motion tween dengan menggunakan frame.getMotionObjectXML() dan frame.setMotionObjectXML(). XML ini berisi data keyframe yang Anda cari (keyframe berlian).

person user1671392    schedule 01.04.2020