Цитата:
Сообщение от 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 не знать Мука -- то же самое, что быть лингвистом и не знать Достоевского ;)
|