Показать сообщение отдельно
  #1 (permalink)  
Старый 22.07.2016, 11:09
Интересующийся
Отправить личное сообщение для butch16 Посмотреть профиль Найти все сообщения от butch16
 
Регистрация: 13.07.2016
Сообщений: 11

Почему не работает setTimeout?
Здравствуйте! Мне уже помогли на этом форуме, попробую еще раз.))) Я дизайнер, а не программист и в javascript полный чайник.

Проблема такая:

Есть простейший баннер сделанный для примера Adobe Animate: круг движется по прямой до границ баннера и обратно. Хочу его остановить через заданное время. Если использую просто stop(), то проигрывание останавливается в любом кадре, а если использую setTimeout, то ничего не происходит, причем Alert прекрасно срабатывает... в чем проблема?

Код:

(function (lib, img, cjs, ss) {

var p; // shortcut to reference prototypes

// library properties:
lib.properties = {
	width: 240,
	height: 400,
	fps: 24,
	color: "#FFFFFF",
	manifest: []
};

// symbols:

(lib.Символ1 = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// Слой 1
	this.shape = new cjs.Shape();
	this.shape.graphics.f("#999999").s().p("AqpKpQkbkaAAmPQAAmOEbkbQEbkbGOAAQGPAAEaEbQEbEbAAGOQAAGPkbEaQkaEbmPAAQmOAAkbkbg");
	this.shape.setTransform(96.5,96.5);

	this.timeline.addTween(cjs.Tween.get(this.shape).wait(1));

}).prototype = p = new cjs.MovieClip();
p.nominalBounds = new cjs.Rectangle(0,0,193,193);


// stage content:
(lib.Proba = function(mode,startPosition,loop) {
	this.initialize(mode,startPosition,loop,{});

	// timeline functions:
	this.frame_0 = function() {
		
		setTimeout(function() {
			this.stop(); 
			alert('Boom!');
		}, 500);
	}

	this.frame_79 = function() {
		this.stop();
	}
// далее код описывающий движение...

Последний раз редактировалось butch16, 22.07.2016 в 12:17.
Ответить с цитированием