Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Кнопки. Зажимание. (http://www.flasher.ru/forum/showthread.php?t=134539)

warning1 03.01.2010 17:23

Кнопки. Зажимание.
 
Нужно зажимание для кнопки чтобы она останавливалась на определенном фрейме при нажатии. Пробовал такой код:
Код AS1/AS2:

on(rollOver) {
        this.gotoAndPlay (2);
}
on(rollOut) {
        this.gotoAndPlay (16);
}
on (release) {
        this.gotoAndStop(15);
}

Но всеравно уезжает с фрейма т.к после рол аут переезжает.

KiL33 03.01.2010 19:55

Вот набросал. Это не совсем то что вам надо, но в большей степени этот вариант лучше того который вы пытаетесь сделать.

Код AS1/AS2:

import mx.transitions.Tween;
 
var btn_mc:MovieClip;
var txt_mc:TextField;
 
for(var i:Number=0;i<5;i++){
btn_mc=createEmptyMovieClip("btn"+i, i);
txt_mc=btn_mc.createTextField("txt",i,0,0,0,0)
txt_mc.autoSize = true
txt_mc.text="Button"+i
btn_mc._x=100
btn_mc._y=30*i
 
with(btn_mc){
beginFill(0xDDDDDD);
moveTo(0, 0);
lineTo(50, 0);
lineTo(50, 20);
lineTo(0, 20);
lineTo(0, 10);
endFill();
}
btn_mc.onPress = function(){
        if(!this.flag){
                new Tween(this, "_xscale", mx.transitions.easing.Regular.easeOut,this._xscale, this._xscale+50, 0.2, true);
                new Tween(this, "_yscale", mx.transitions.easing.Regular.easeOut,this._yscale, this._yscale+50, 0.2, true);
                }
                else{
                new Tween(this, "_xscale", mx.transitions.easing.Regular.easeOut,this._xscale, this._xscale-50, 0.2, true);
                new Tween(this, "_yscale", mx.transitions.easing.Regular.easeOut,this._yscale, this._yscale-50, 0.2, true);
                        }
        this.flag = !this.flag;
}
}

Если всё же вы хотите делать по-своему можете писать для каждой кнопки условие, типа:

btn1=true

if(btn1){//если true
//кнопка что-то сделала
}else{//если false
//кнопка что-то сделала
}

mr_pol 04.01.2010 00:08

а как должна вести себя кнопка на 15 кадре?
если только ролаут убрать, то можно вот так:

Код AS1/AS2:

on (rollOver) {
        this.gotoAndPlay(2);
}
on (rollOut) {
        if (this._currentframe != 15) {
                this.gotoAndPlay(16);
        }
}
on (release) {
        this.gotoAndStop(15);
}



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

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