Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.07.2007, 00:46
StreetPeople вне форума Посмотреть профиль Отправить личное сообщение для StreetPeople Посетить домашнюю страницу StreetPeople Найти все сообщения от StreetPeople
  № 1  
Ответить с цитированием
StreetPeople
 
Аватар для StreetPeople

Регистрация: Jun 2007
Адрес: Королёв, МО
Сообщений: 34
Отправить сообщение для StreetPeople с помощью ICQ
Question Функция родителя не видна из исполняемой функции setInterval'а

Скажем есть класс родителя, в котором определена некая функция
Код:
class Action implements interfaceAction
{
	function getValueByParams( args:Object ) : Number
	{
		// T - время
		// A - Ускорение

		return args.A*args.T*args.T/2;
	}
}
и есть дочерний класс, из которого каждую миллисекунду мы хотим доставать значения функции класса родителя. - При обращеннии через функцию setInterval'а к функции класса родителя мы её не находим
Код:
class Movies extends Action
{
	function StartXMovie( ){
		this.movieObject.A = 1;
		this.movieObject.T = 7;
		trace( getValueByParams( {A:1, T:7} ) );//24.5
		this.movieObject.InitMovieInterval = setInterval(this.setXPosition, this.movieObject.interval, this.movieObject );
	}

	function setXPosition( ){
//		trace( getValueByParams( {A:1, T:7} ) );//Undefined
	}
}
В же чём причина? Почему мы можем получить возвращаемое значение функции родительского класса из функции дочернего класса, но не можем получить это значение из такой же функции того же дочернего класса, вызываемой setInterval'ом???

Подскажите, плиз, как это можно сделать...


PS: Пытаюсь реализовать равномерно-ускоренное движение объекта. Если есть другой способ в рамках концепции классов, помимо setInterval, хотелось бы узнать...
__________________
Шаг вперёд, является результатом пинка сзади


Последний раз редактировалось StreetPeople; 27.07.2007 в 00:54.
Старый 27.07.2007, 01:08
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Не interfaceAction, а IAction надо называть, хотя бы.
У setInterval два синтаксиса. В данном случае применяется неправильный синтаксис.

Нужно так:

Код:
setInterval(this, 'setXPosition', this.movieObject.interval, …);
Только зачем там передается аргумент в функцию — непонятно, он все-равно не используется.

Старый 27.07.2007, 06:27
StreetPeople вне форума Посмотреть профиль Отправить личное сообщение для StreetPeople Посетить домашнюю страницу StreetPeople Найти все сообщения от StreetPeople
  № 3  
Ответить с цитированием
StreetPeople
 
Аватар для StreetPeople

Регистрация: Jun 2007
Адрес: Королёв, МО
Сообщений: 34
Отправить сообщение для StreetPeople с помощью ICQ
Я не стал дописывать код, поскольку обнаружил ошибку и сразу же переключился на неё. Конечно аргумент будет использоваться...

К сожалению, во флэш регламентирована только одна функция реализации интервалов, в рамках "неправильного синтаксиса".


Флэшка ожила, спасибо =)
Насчёт названия интерфейса отдельное "спасибо" =)...
__________________
Шаг вперёд, является результатом пинка сзади

Старый 27.07.2007, 08:29
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 4  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от StreetPeople
К сожалению, во флэш регламентирована только одна функция реализации интервалов, в рамках "неправильного синтаксиса".
Вот прямо из хелпа:
Цитата:
setInterval function
Код:
setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number
Это глобальные дела, где там этот таймер сидит, бог его знает.

Старый 27.07.2007, 10:13
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от StreetPeople
Насчёт названия интерфейса отдельное "спасибо" =)...
Судя по кавычкам, вы не приняли это к сведенью. А надо было.

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.