Показать сообщение отдельно
Старый 12.03.2008, 20:07
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 5  
Ответить с цитированием
chingachgoog
Banned
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
Понятно...
Я думал есть специальное свойство, а так я уже сделал нечто подобное
(для любого числа слоев):

Код:
fl.outputPanel.clear ();

myFile=fl.getDocumentDOM()
myTimeline=myFile.getTimeline()

for (i=0; i<myTimeline.layers.length; i++){
	curLayer=myTimeline.layers[i]
	myTimeline.setSelectedLayers(i)
	
	for (j=0; j<curLayer.frames.length; j++){
		curFrame=curLayer.frames[j]
		fl.trace(i+" "+j+" "+curFrame.duration+" "+curLayer.frames.length+" keyframe")
		j+=curFrame.duration-1	
	}
}
add:
А где математический аппарат? Мне, например надо округлять числа: из 2.8 сделать 3. Как?
add2: вроде нашел - все просто, как валенок: Math.round()

add3:
вроде вышло

Код:
// скрипт для автоформата таймлайна
// для случая когда fps учащается до значения myNewRate
// а динамику анимации надо сохранить

myFile=fl.getDocumentDOM()
myTimeline=myFile.getTimeline()

myNewRate=18 // здесь поставить значение желаемого fps
myOldRate=myFile.frameRate
myCoeffRate=myNewRate/myOldRate

for (i=0; i<myTimeline.layers.length; i++){
	curLayer=myTimeline.layers[i]
	myTimeline.setSelectedLayers(i)
	for (j=0; j<curLayer.frames.length; j++){
		curFrame=curLayer.frames[j]
		add=Math.round(curFrame.duration*myCoeffRate-curFrame.duration)
		myTimeline.insertFrames(add, false, j);
		j+=curFrame.duration-1
	}
}
myFile.frameRate=myNewRate


Последний раз редактировалось chingachgoog; 12.03.2008 в 20:37.