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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.11.2006, 15:10
teka вне форума Посмотреть профиль Отправить личное сообщение для teka Найти все сообщения от teka
  № 1  
Ответить с цитированием
teka
[+1.3 03.08.07]
 
Аватар для teka

Регистрация: Nov 2005
Адрес: moscow
Сообщений: 26
Post scope in classes

Салют. Не могу справиться с проблемой.
Есть такой фрагмент:
Код:
class miComboBox {
	var __Width:Number;
	var __Parent:Number;
	...
	function miComboBox(__parent:Object,...) {
		this.__Parent = __parent;
	}
}
[iNils: Для оформления своего кода, надо использовать теги [code][/code]]

Ну и т.п.
Теперь если в какой-либо функции внутри этого класса я создаю обработчик на какой-нить клип/кнопку, допустим, onRelease, то у меня this внутри обработчика начинает ссылаться на этот самый родительский клип/кнопку. А вот как из обработчика увидеть __Parent, либо обратиться к какой-либо из функций класса?


Последний раз редактировалось iNils; 30.11.2006 в 17:37.
Старый 30.11.2006, 15:36
teka вне форума Посмотреть профиль Отправить личное сообщение для teka Найти все сообщения от teka
  № 2  
Ответить с цитированием
teka
[+1.3 03.08.07]
 
Аватар для teka

Регистрация: Nov 2005
Адрес: moscow
Сообщений: 26
Нет, ну конечно можно перед вызовом обработчика сохранять значение this в клипе, например, так: myMc.parent = this; .
Но просто интересно, может кто-то более элегантное решение знает?

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

Регистрация: Sep 2002
Сообщений: 30,787
1) Имена классов должны начинаться с большой буквы
2) Тип свойства указан как Number, а в конструкторе ты присваиваешь Object

Проще использовать Delegate/Proxy для перенаправления вызова метода в метод класса. Где-то в соседних темах есть и примеры Delegate (можно пользовать родной mx.utils.Delegate), и Proxy.

Старый 30.11.2006, 16:45
teka вне форума Посмотреть профиль Отправить личное сообщение для teka Найти все сообщения от teka
  № 4  
Ответить с цитированием
teka
[+1.3 03.08.07]
 
Аватар для teka

Регистрация: Nov 2005
Адрес: moscow
Сообщений: 26
По умолчанию странно.

странно. разве delegate не к компонентам применяется? а у меня ведь просто movieClip. Proxy тоже не годится. Юзаю пока восьмерку (или опять не прав и под восьмеркой тоже есть flash.utils.Proxy?)

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

Регистрация: Sep 2002
Сообщений: 30,787
Proxy подразумевался ascb.util.Proxy, я где-то приводил его код. Есть на person13.com…
В делегат можно юзать и в своих целях.

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

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 784
Отправить сообщение для Бармалей с помощью ICQ
Цитата:
Сообщение от teka
А вот как из обработчика увидеть __Parent, либо обратиться к какой-либо из функций класса?
Если обработчики клипов присваиваются в конструкторе или одном из методов текущего класса, можно воспользоваться локальной ссылкой на текущий объект:

Код:
public function miComboBox(){
	// Сохраняем ссылку на текущий объект.
	this_tmp:miComboBox = this;
	// Присавиваем обработчик клипу.
	my_mc.onPress = function(){
		// Спокойно обращаемся к свойству нашего объекта.
		this_tmp.__Parent = 100;
	};
	
}
__________________
Garbage Collector || AIR (Apollo) Docs

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

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

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


 


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


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