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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
Arrow Пара вопросов по FD

Начинаю работать с FD, есть пара вопросов:
1. Как связать вместе класс из swc и класс в проекте. Допустим есть у меня какой то шарик, я ему делаю Export for AS, линкую его с классом который создал. Но насколько я понял в FD такое не прокатывает и надо делать extend. А без него никак?
2. Можно ли написать Frame Script в объекте который экспортируется в swc, а затем обратиться к нему из FD?
3. Где можно поменять горячие клавиши?

Старый 23.03.2011, 00:37
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
1. Можно и без него. Используйте композицию.
__________________
тут я

Старый 23.03.2011, 00:44
Universe вне форума Посмотреть профиль Отправить личное сообщение для Universe Найти все сообщения от Universe
  № 3  
Ответить с цитированием
Universe
 
Аватар для Universe

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
а немного поподробнее о композициях можно?

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Код AS3:
package classes 
{
	import flash.utils.flash_proxy;
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	import flash.utils.Proxy;
 
	/**
	 * ...
	 * @author Scarbo
	 * используем композицию, чтобы пользоваться благами и событийной модели и прокси!
	 */
	public class CustomProxy extends Proxy implements IEventDispatcher 
	{
		private var _dispatcher:EventDispatcher;
		private var _data:Object;
 
		public function CustomProxy() 
		{
			super();
			_dispatcher = new EventDispatcher();
			_data = { };
		}
 
		/*вот тут, наследование*/
		override flash_proxy function getProperty(name:*):*{
			if(name in _data){
				return _data[name];
			}else{
				return null;
			}
		}
		override flash_proxy function setProperty(name:*, value:*):void {
			_data[name] = value;
			dispatchEvent(new Event(Event.CHANGE));
		}
 
		/* INTERFACE flash.events.IEventDispatcher */
		/*а тут, композиция*/
		public function dispatchEvent(event:Event):Boolean 
		{
			return _dispatcher.dispatchEvent(event);
		}
		public function hasEventListener(type:String):Boolean 
		{
			return _dispatcher.hasEventListener(type);
		}
		public function willTrigger(type:String):Boolean 
		{
			return _dispatcher.willTrigger(type);
		}
		public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void 
		{
			_dispatcher.removeEventListener(type, listener, useCapture);
		}
		public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
		{
			_dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
		}
 
	}
 
}
__________________
Я просто добрый шутник.

Старый 23.03.2011, 01:04
Universe вне форума Посмотреть профиль Отправить личное сообщение для Universe Найти все сообщения от Universe
  № 5  
Ответить с цитированием
Universe
 
Аватар для Universe

Регистрация: Feb 2010
Сообщений: 811
Отправить сообщение для Universe с помощью ICQ Отправить сообщение для Universe с помощью Skype™
эээ....не въехал. И что теперь с этим классом CustomProxy делать? Экстендится от него?

Старый 23.03.2011, 01:18
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 6  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Зачем? Это просто, класс-пример, он не имеет практической пользы.Типа Object, который будет выкидывать Event.CHANGE, всякий раз, когда добавляешь или изменяешь значение.Пример:
Код AS3:
var cProxy:CustomProxy = new CustomProxy();
cProxy.addEventListener(Event.CHANGE, _changeHandler);
cProxy['asd'] = 123;
cProxy['asd'] = 234;
cProxy['dsa'] = 'rtez';
 
private function _changeHandler(e:Event):void{trace(e);}
Можно было создать кастомный event, чтобы передавал ключ и значение, которые добавили/изменили в customProxy/
Смысл композиции - добавить функционал классу, который не может быть получен от наследования. К примеру класс наследуется от Sprite, а хочет уметь музыку грузить, делаешь интерфейс ISound и композицию с Sound, и твой DisplayObject теперь еще и музыку грузит.
__________________
Я просто добрый шутник.


Последний раз редактировалось scarbo; 23.03.2011 в 01:20.
Старый 23.03.2011, 08:25
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
scarbo, немного неудачный пример в этой теме
Universe, проще говоря, мы добавляем графику в класс, вместо того, чтобы от нее наследоваться.
Вот самые простейшие примеры:
Наш класс недоабстрактный, мы в конструктор передаем ссылку на контейнер для графики
Код AS3:
package  {
	import flash.display.DisplayObjectContainer;
	import flash.display.MovieClip;
	import lib.myMC;
 
	public class MyClass {
		private var obj:MovieClip;
		private var host:DisplayObjectContainer;
 
		public function MyClass(host:DisplayObjectContainer) {
			// host - ссылка на контейнер, в котором будем размещать графику, 
			// например экземпляр главного класса
			this.host = host;
			// myMC - класс, прилинкованный к графике в библиотеке
			obj = new myMC();
			host.addChild(obj);
			// дальше управляем уже obj
		}
	}
}
Пример, где наш класс - сам контейнер:
Код AS3:
package  {
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import lib.myMC;
 
	public class MyClass extends Sprite {
		private var obj:MovieClip;
 
		public function MyClass() {
			// myMC - класс, прилинкованный к графике в библиотеке
			obj = new myMC();
			addChild(obj);
			// дальше управляем уже obj
		}
	}
}
__________________
тут я

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

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Раздел был выбран не верно.
Один вопрос - одна тема.

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

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

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


 


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


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