Autor Zpráva
andy7
Profil *
ahojte chcel by som sa vas spytat ci by ste mi vedeli poradit s tymto problémom: takže predstavte si že mate na prvej snimke v scene nakresleny stvorec rozmery 100x100. prevediete ho na MC. teraz chcem aby reagoval na akciu rollover a rollout .ok to by som vedel ale neviem ako by som mal spravit to že ak nad nim pridem mysou zmeni ten objekt dlzky stran teda 100x200. a ked z toho objektu mysou odideme tak sa zmeni na povodnu velkost teda na 100x100. toto vsetko by som cchel spraviť tak že i keby človek tou myšou odíde skorej ako ja ta druha strana dosiahne dlzku 200 tak sa ten movieclip zastavi a opat vrati späť teda na rozmer 100x100. viete mi niekto pomocť?
weroro
Profil
Riešenie pre ActionScript 2.0:
Neanimovaná zmena ceľkosti (šírka)
this.mc.onRollOver = function ():Void 
{
    this._width = 200;
};
this.mc.onRollOut = function ():Void 
{
    this._width = 100;
};

Animovaná zmena velkosti (šírka)
/*
* mc = naázov movieclipu
* w = šírka na ktorú sa má mc roztiahnut
* speed = rychlost zmeny rozmeru v pixeloch
* out = urcenie kedy sa ma vykonat dana akcia (true = onRollOut; false = onRollOver
* center = určenie či sa má roztahovany mc udrzovat stale v strede
*/
function resMC (mc:MovieClip, w:Number, speed:Number, out:Boolean, center:Boolean):Void
{
    mc.w = (!w) ? mc.width : w;
    mc.speed = (!speed) ? 1 : speed;
    mc.out = out;
    mc.center = center;
    mc.onEnterFrame = function ():Void 
    {
        if (!this.out && this._width < this.w) this._width += this.speed;
        if (this.out && this._width > this.w) this._width -= this.speed;
        if (this.center)
        {
            if (this.out) this._x += this.speed / 2;
            else this._x -= this.speed / 2;
        }
        if (this._width == this.w) delete this.onEnterFrame;
    };
}
this.mc.onRollOver = function ():Void 
{
    resMC (this, 200, 5, false, true);
};
this.mc.onRollOut = function ():Void 
{
    resMC (this, 100, 1, true, true);
};
andy7
Profil *
diky moc za pomoc :)
andy7
Profil *
len tam je chybycka a to ze preco sa ten objekt stale pohybuje, ked na neho prejdem mysou?
weroro
Profil
Áno, pardon. Bol som v tedy po oslave, tak som bol mierne nepozorný. Tu je oprava:
/*
* mc = naázov movieclipu
* w = šírka na ktorú sa má mc roztiahnut
* speed = rychlost zmeny rozmeru v pixeloch
* out = urcenie kedy sa ma vykonat dana akcia (true = onRollOut; false = onRollOver
* center = určenie či sa má roztahovany mc udrzovat stale v strede
*/
function resMC (mc:MovieClip, w:Number, speed:Number, out:Boolean, center:Boolean):Void
{
    mc.w = (!w) ? mc.width : w;
    mc.speed = (!speed) ? 1 : speed;
    mc.out = out;
    mc.center = center;
    mc.onEnterFrame = function ():Void 
    {
        if (!this.out && this._width < this.w)
        {
            this._width += this.speed;
            if (this.center) this._x -= this.speed / 2;
        }
        if (this.out && this._width > this.w)
        {
            this._width -= this.speed;
            if (this.center) this._x += this.speed / 2;
        }
        if (this._width == this.w) delete this.onEnterFrame;
    };
}
this.mc.onRollOver = function ():Void 
{
    resMC (this, 200, 5, false, true);
};
this.mc.onRollOut = this.mc.onReleaseOutside = function ():Void
{
    resMC (this, 100, 1, true, true);
};

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: