Нашли альтернативу флеш анимации

Здесь обсуждаются любые продукты компании СофтЛаб-НСК для телевизионного вещания (Форвард Т, Форвард ТС, Форвард Голкипер, Форвард Рефери, Форвард Офис, Форвард Инжест)

Модераторы: ElenVR, Людмила, PR

Ответить
atx
Сообщения: 4
Зарегистрирован: 16 мар 2016 16:11

Сообщение atx »

Уже на мониторе заметно подергивание в FDTitleDesigner, а на ТВ тем более. Причем если смотреть через QMLScene, то подергивания заметно меньше. Ранее на Qt 4.7 подергиваний почти не было (редко).

Кстати, если в качестве выхода в титровальном проекте задать не PAL*25, а HD720*50 - подергивания становятся менее заметны.

Пробовал переделать "бегущую строку" на таймерах, также дергается.

Бегучка на QML очень нужна, т.к. очень удобно динамически накатывать стили CSS на текст.

И еще вопрос, титровальный объект QML игнорирует свойство interval таймеров QML?

p.s. сервер на базе i7-3,6ГГц, 8Гб ОЗУ, видео Intel HD 4600
atx
Сообщения: 4
Зарегистрирован: 16 мар 2016 16:11

Сообщение atx »

вот конечный вариант скрипта, переделанный на таймере

Код: Выделить всё

import QtQuick 1.0

Rectangle {
	//--------------------------------------------------- JS Functions --------------------------------------
	function loadStrings(runString)
	{
		var url = "http://127.0.0.1:88/runstr.txt"
		var doc = new XMLHttpRequest()
		doc.open("GET", url)
		doc.onreadystatechange = function(){
			if (doc.readyState === XMLHttpRequest.DONE){
				if (doc.status === 200){
					runString.textLines = String(doc.responseText)
					runString.textLinesCount = runString.textLines.split("\n").length-1
					animTimer.start()
				}
			}
		}
		doc.send()
	}
	
	//--------------------------------------------------- Timers ------------------------------------------
	Timer {
		
		id: loadTimer
	
		running: true
		repeat: false
		
		onTriggered: {
			loadStrings(runString)
		}
	}	
	
	Timer {
		
		id: animTimer
		
		repeat: true
		
		interval: 10
		
		onTriggered: {

			rect.x = rect.x-2.415926535897932384626433832795
	
			if &#40;rect.x < -text.paintedWidth&#41;&#123;
				runString.textIdx++
				if &#40;runString.textIdx >= runString.textLinesCount&#41;&#123;
					runString.textIdx = 0
					loadTimer.start&#40;&#41;
				&#125;
				text.text = runString.textLines.split&#40;'\n'&#41;&#91;runString.textIdx&#93;
				rect.x = runString.width
			&#125;
		&#125;
	&#125;
	
		
	id&#58; runString
	
	property int textLinesCount&#58; 1 // default
	property int textIdx&#58; 0 // default
	
	property string textLines&#58; ""

	width&#58; 1000
	height&#58; 32

	color&#58; "steelblue"

	Rectangle &#123;
		
		id&#58; rect
		
		x&#58; runString.width
		
		Text &#123;
			
			id&#58; text
			
			color&#58; "white"
			font.pixelSize&#58; 24
			verticalAlignment&#58; Text.AlignVCenter
			
			text&#58; runString.textLines.split&#40;"\n"&#41;&#91;0&#93;
		&#125;
	&#125;	
&#125;
на 5.7.0 с Qt 5 тормозит
пока откатился на 5.6.0 с Qt 4.7 - тут все отлично!
Ответить