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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 09.07.2009, 12:11
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от winbackgo Посмотреть сообщение
при инициализации флэш инициализирует mainApp и где-то ведь хранится ссылка на него.
А Вы создали ссылку на него? Нет ссылки - нет доступа.


Цитата:
про передачу this я думал но тогда привязка класса к mainApp и если потом его использовать в другом проекте то надо переделывать.
Интерфейсы спасают.

Цитата:
Мне вообще это нужно для создания функции дебаг и в классе проверить если она доступна то вызывать.
ApplicationDomain.hasDefinition(value:String):Boolean


Цитата:
А также для доступа к параметрам flashvars через loaderInfo. В mainApp доступно root.loaderInfo.parameters как до них добраться в exampleClass?
Конфигурируте ЕxampleClass необходимыми ему параметрами. Можно в конструктор передавать. а можно сеттить после создания его экземпляра.


Код AS3:
package {
 
	import flash.display.Sprite;
 
	public class MainApp extends Sprite implements ITestable {
 
		public function MainApp() {
			super();
 
			var exampleClass:ExampleClass = new ExampleClass();
			var param:uint = parseInt(super.loaderInfo.parameters['param']);
 
			exampleClass.controller = this;
			exampleClass.param = param;
		}
 
		public function test(value:uint):void {
			trace('Tested: ' + value);
		}
	}
}

Код AS3:
package {
 
	public class ExampleClass {
 
		public function ExampleClass() {
			super();
		}
 
		//-----------------------------
		//  controller
		//-----------------------------
		private var _controller:	ITestable;
 
		public function set controller(value:ITestable):void {
			if (this._controller == value) return;
			this._controller = value;
		}
 
		public function get controller():ITestable {
			return this._controller;
		}
 
		//-----------------------------
		//  param
		//-----------------------------
		public function set param(value:uint):void {
			if (this._controller) this._controller.test(value);
		}
 
	}
}
Код AS3:
package {
 
	public interface ITestable {
		function test():void;
	}
 
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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