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

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

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

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
По умолчанию Ссылка на текущий экземпляр и setInterval

Есть класс:
Код:
class ClassName {
	
	private var $changeTime:Number = 500;
	
	private var $auto:Boolean;
	
	private var $intID:Number;
	
	public function ClassName( auto:Boolean ) 
	{
		$auto = auto;
	}
	public function start (  ) : Void
	{
		if ( $auto )
		{
			change ( this );
			$intID = setInterval ( change, $changeTime, this );
		}
		else
		{
			change ( this );
		}
	}
	public function change ( instance:ClassName ) : Void
	{
		var instance:ClassName = instance;
		trace ( instance );
	}
}
Такой вариант работает. Но очень не нравиться, что при вызове метода change вне класса надо передавать в него ссылку на экземпляр.
Вариант:
Код:
public function change (  ) : Void
	{
		var instance:ClassName = this;
		trace ( instance );
	}
не работает через setInterval.
Вопрос: можно ли как то решить проблему, не передавая ссылку на экземпляр в качестве аргумента функции?

Старый 29.12.2006, 13:34
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 2  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
пока обошелся таким вариантом:
Код:
public function change ( instance:ClassName ) : Void
{
	var instance:ClassName = ( instance == undefined ) ? this : instance;
	trace ( instance );
}

Старый 29.12.2006, 13:36
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
а то:
Цитата:
setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number
тебе второй вариант
$intID = setInterval (this, "change", $changeTime );


Последний раз редактировалось silin; 29.12.2006 в 13:39.
Старый 29.12.2006, 13:48
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 4  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
2silin: спасибо большое.
Ушел читать хэлп

Старый 29.12.2006, 14:14
FourSide вне форума Посмотреть профиль Отправить личное сообщение для FourSide Найти все сообщения от FourSide
  № 5  
Ответить с цитированием
FourSide

Регистрация: Jul 2006
Сообщений: 387
Отправить сообщение для FourSide с помощью Skype™
Оппппа... А что такое $ перед переменной? По коду вроде не PHP....

Старый 29.12.2006, 14:21
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 6  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
FourSide, $ просто символ, если свойство или метод закрытый их имя я начинаю с $. Кто-то использует знак _ для этих целей. Ну а мне удобней с долларом.=)

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

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

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


 


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


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