pdf 3d с JavaScript: простой пример - PullRequest
0 голосов
/ 18 марта 2012

Мне нужно сделать простой PDF-файл с некоторыми 3D-объектами для устной презентации.Я сделал несколько видов, каждый с точки зрения камеры, объекта и режима отображения.Чтобы избежать необходимости вручную переключаться между различными точками обзора с помощью контекстного меню, я бы хотел, чтобы точки обзора автоматически переключались с помощью таймера (каждая точка обзора оставалась на несколько секунд).И я не хотел бы вообще касаться мыши (и клавиатуры), поэтому я хотел бы начать воспроизведение сразу после появления страницы.

Я нашел команду javascript runtime.setView (N, x) чтобы переключиться на x-й вид среди N, но я не знаю, где его разместить (я не хочу определять функцию, которая будет вызываться при нажатии кнопки, так как я хочу, чтобы всебыть автоматизированным).Кроме того, я не знаю, как сделать паузу на несколько секунд.

Любая помощь?Спасибо!

Ответы [ 2 ]

1 голос
/ 18 марта 2012

Я полагаю, вы ищете setInterval(fn, time), который будет периодически вызывать функцию через заданный вами интервал времени. Я не знаком с упомянутым вами методом setView(), но вот какой-то псевдокод, который вы бы поместили в теги в конце тела документа.

function startSwitcher()
    var viewNum = 0;
    var maxViews = 5;     // you set this to how many views there are
    setInterval(function()  {
        ++viewNum;
        if (viewNum >= maxViews) {
            viewNum = 0;
        }
        runtime.setView(N, viewNum);     // you will have to figure out this line 
    }, 2000);
}

startSwitcher();

2000 составляет 2000 миллисекунд и является интервалом времени между выполнением функции. Вы можете указать любое количество миллисекунд.

Строка runtime.setView(N, viewNum) - это то, что вам нужно выяснить, поскольку я не знаком с какой-либо библиотекой, которую вы пытаетесь использовать там. Оперативной частью этого кода является переменная viewNum, которая определяет, какой вид поворота должен быть следующим.

0 голосов
/ 25 марта 2015

Я думаю, что методы runtime.SetView(..) работают с именем представления в виде строки вместо номера представления.У меня есть эта функция в сценарии уровня документа, и она работает для меня:

// view is the name of the view for example "TopView"
function setView(view){
	console.println("Navigating to view: "+view);
	
	var pageIndex = this.pageNum;

	var annotIndex = 0;

	var c3d = this.getAnnots3D( pageIndex )[ annotIndex ].context3D;

	c3d.runtime.setView(view, true);
}

Объедините это с ответом setInterval(..) от jfriend00, и вы получите то, что вам нужно.С наилучшими пожеланиями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...