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

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

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

Регистрация: Dec 2003
Сообщений: 3,925
Цитата:
Сообщение от ir73
Вот вы все время не рекоммендуете наследовать мувиклип. А как тогда обходитша с классами, которые мы присваимаем мувикам через Линкаге? Они же должны быть все, как я понимаю , extends MovieClip
Это опять же, если мыслить только как "объект сам должен иметь методы"... А что если объект имеет ссылку? Мы создаем экземпляр класса, конструктору (либо методу) передаем ссылку на его визуальную компоненту и все.

В крайнем случае никто не отменял createClassObject.

Базовый класс выглядит так:
Код:
import visual.scene.IVisualObject;
import mx.transitions.Tween;
import mx.transitions.easing.Elastic;

/**
 * @date        26.07.2003 
 * @author	Michael Klishin	
 * @version     1.0
 **/
class visual.scene.VisualObject implements IVisualObject
{
	private var __viewport:MovieClip;
	
	function VisualObject( mc:MovieClip )
	{
		__viewport = mc;
	}
	
	
	/**
	 * 
	 * @usage   
	 * @param   x 
	 * @param   y 
	 * @return  
	 */
	public function move( x:Number, y:Number ): Void
	{
		__viewport._x = x;
		__viewport._y = y;
	}


	/**
	 * 
	 * @usage   
	 * @param   state 
	 * @return  
	 */
	public function changeState( state:String ): Void
	{
		if(state) __viewport.gotoAndStop(state);
	}


	/**
	 * 
	 * @usage   
	 * @param   x 
	 * @param   y 
	 * @return  
	 */
	public function slideTo( x:Number, y:Number, relative:Boolean, time:Number, callback:Function ): Void
	{
		if(relative)
		{
			var xTo:Number = __viewport._x + x;
			var yTo:Number = __viewport._y + y;			
		} else
		{
			var xTo:Number = x;
			var yTo:Number = y;
		}
		
		var xTween:Tween = new Tween(__viewport, '_x', Elastic.easeOut, __viewport._x, xTo, time, true );
		var yTween:Tween = new Tween(__viewport, '_y', Elastic.easeOut, __viewport._y, yTo, time, true );
		
		if(callback) xTween.onMotionStopped = callback;
		
		xTween.start();
		yTween.start();
	}

	/**
	 * 
	 * @usage   
	 * @return  
	 */
	public function show(  ):Void 
	{
		__viewport._visible = true;
	}

	/**
	 * 
	 * @usage   
	 * @return  
	 */
	public function hide(  ):Void 
	{
		__viewport._visible = false;
	}

	/**
	 * 
	 * @usage   
	 * @return  
	 */
	public function getVisualObject(): MovieClip
	{
		return __viewport;
	}

}
И все. Очень логично и удобно, мухи отделены от котлет.

P.S. Занимаясь Flash не знать Мука -- то же самое, что быть лингвистом и не знать Достоевского

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

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

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


 


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


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