Показать сообщение отдельно
Старый 02.04.2007, 14:40
vitlance вне форума Посмотреть профиль Отправить личное сообщение для vitlance Найти все сообщения от vitlance
  № 1  
Ответить с цитированием
vitlance
 
Аватар для vitlance

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
По умолчанию Чтобы класс работал

Для некоторых вопрос покажетса смешным, и простым.. Но т.к как я делаю всё без классов незнаю как же запустить вот этот класс:

Код:
class htest.Sprite extends MovieClip {
    
    public function Sprite() {
        super();
    }
    
    private function getMax(arr:Array):Number {
        var max:Number = arr[0];
        for(var i:Number = 1; i<arr.length; i++)
            if(arr[i]>max) max = arr[i];
        return max;
    }
    
    private function getMin(arr:Array):Number {
        var min:Number = arr[0];
        for(var i:Number = 1; i<arr.length; i++)
            if(arr[i]<min) min = arr[i];
        return min;
    }
    
    private function getOverlayArea(target:Sprite):Array {
        var area:Array = []; area[0] = {}; area[1] = {};
        area[0].x = getMax([this._x,target._x]); 
        area[0].y = getMax([this._y,target._y]);
        area[1].x = getMin([this._x+this._width,target._x+target._width]); 
        area[1].y = getMin([this._y+this._height,target._y+target._height]);
        return area;
    }
    
    public function overlayTest(target:Sprite):Boolean {
        var overlay:Boolean = false;
        if(this.hitTest(target)){
            var area:Array = getOverlayArea(target);
            var step:Number = 1;
            var y:Number = area[0].y;
            while(y<area[1].y){
                y+=step;
                var x:Number = area[0].x;
                while(x<area[1].x){
                    var test1:Boolean = this.hitTest(x,y,true);
                    var test2:Boolean = target.hitTest(x,y,true);
                    if(test1 && test2){
                        overlay = true;
                        return overlay;
                    }
                    x+=step;
                }
            }
        }
        return overlay;
    }

}
Это класс который проверяет hittest контура любой фигуры... Я хочу чтобы он работал в моей флэшки.. Т.е чтобы я отовсюду мог вызывать функцию overlayTest ... чтобы он работал вот так:
Код:
if (mc1.overlayTest(mc2)){
trace("ura");}