佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1508|回复: 12

急!!! 如何制作一个已经被按过的button,变成over state?

[复制链接]
发表于 5-8-2008 07:14 AM | 显示全部楼层 |阅读模式
想请问一下,如何制作一个已经被按过的button,变成over state?
我在网上找到一些资料,但是看到mcc,因为是菜鸟,不懂action script,不过看到一个script,就抄下来跟着做。就是看到那些人的意见,将button的效果改成movieclip来弄会比较好。所以就做了一sample,一个浅,一个深,当滑鼠rollover之后,就会变成深色的效果,滑鼠离开后,变成浅色,点击那个网页后,button会一直保持深色。但是我点击了之后,图片还是变回浅的颜色。感觉好像要成功了但是还是不懂差了哪一个步骤

各位大大,有谁知道怎样做吗?
谢谢大家!

附图:
浅色的图


深色的图,第3的frame的颜色也是跟第2的图一样,是深色


action的script
stop();
this.onRollover = function() {
   gotoAndStop(2);
};
this.onRollOut = this.onDragOut=function () {
   if (this.selected != true) {
      gotoAndStop(1);
      this.selected = false;
   }
};
this.onPress = function() {
   gotoAndStop(3);
   this.selected = true;
};

[ 本帖最后由 svenja 于 5-8-2008 07:15 AM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 5-8-2008 07:26 AM | 显示全部楼层
看下你第三个frame
回复

使用道具 举报

发表于 5-8-2008 08:50 AM | 显示全部楼层
应该是 this.OnRelease 吧。
不能用this.onPress
回复

使用道具 举报

 楼主| 发表于 5-8-2008 05:11 PM | 显示全部楼层
原帖由 s2p 于 5-8-2008 07:26 AM 发表
看下你第三个frame

第三个frame的图跟第二个frame一样,其实我是不是应该省掉第三个frame? 因为跟第二个一样。我只是想把点击button弄简单点,就是一个浅色,一个深色。然后点击之后就保持深色的图。如果点击右边的button后,第一个就变回浅色。
回复

使用道具 举报

 楼主| 发表于 5-8-2008 05:12 PM | 显示全部楼层
原帖由 JohnChronox 于 5-8-2008 08:50 AM 发表
应该是 this.OnRelease 吧。
不能用this.onPress

我刚改了,但是还是一样
回复

使用道具 举报

发表于 5-8-2008 09:23 PM | 显示全部楼层
stop();
_root.onEnterFrame = function() {
        if(rest) {
                _root.gotoAndStop(1);
        }
        if(over) {
                _root.gotoAndStop(2);
        }
        if(clicked) {
                _root.gotoAndStop(3);
        }
}

_root.symbol.onRollOver = function() {
        if (_root.clicked != true) {
                _root.rest = false;
                _root.over = true;
                _root.clicked = false;
        }
}

_root.symbol.onRollOut = _root.symbol.onDragOut = function() {
        if (_root.clicked != true) {
                _root.rest = true;
                _root.over = false;
                _root.clicked = false;
        }
}

_root.symbol.onRelease = function() {
        _root.rest = false;
        _root.over = false;
        _root.clicked = true;
}


把你的movieclip instance name 改为 symbol
回复

使用道具 举报

Follow Us
 楼主| 发表于 6-8-2008 01:35 AM | 显示全部楼层

回复 6# JohnChronox 的帖子

谢谢JohnChronox,我试了将instance改为symbol,但是还是不可以 不懂我的问题出在哪里 我用滑鼠rollover时不能变为深色。

这是将第一个button的instance改为symbol


然后把你的script copy进第一个button里


[ 本帖最后由 svenja 于 6-8-2008 01:36 AM 编辑 ]
回复

使用道具 举报

发表于 6-8-2008 01:35 AM | 显示全部楼层
原帖由 JohnChronox 于 5-8-2008 09:23 PM 发表


把你的movieclip instance name 改为 symbol


这是做给一个button的code罢了。。对吗?抱歉,没有flash可以test
回复

使用道具 举报


ADVERTISEMENT

发表于 6-8-2008 01:49 AM | 显示全部楼层
svenjia
先理好一个概念
首先,你要一个
指进去会深色
指出来会浅色
按他会深色
这三个john的源码应该能办到了

接下来第二part
你要按别的button,第一个button回reset回去浅色
对吗?
回复

使用道具 举报

 楼主| 发表于 6-8-2008 02:28 AM | 显示全部楼层
原帖由 s2p 于 6-8-2008 01:49 AM 发表
svenjia
先理好一个概念
首先,你要一个
指进去会深色
指出来会浅色
按他会深色
这三个john的源码应该能办到了

接下来第二part
你要按别的button,第一个button回reset回去浅色
对吗?

谢谢s2p
其实我原本是在dreamweaver用rollover image的功能来弄普通button的,rollover的image我用original image跟rollover image,只用两个图来变,就是未点前是浅色,滑鼠rollover时变成深色,当点击后就进入那个页面,被点的那边的button就变深色,我是manually改成深色的。顾客投诉说点击button时,看到那button的框(浅灰色,其实每个button的size是四方型,所以点击了之后就会看到那个灰色的box),我是被逼改用flash button  不过在index那页我只是做一个简单的字体animation。

顺便放上这个图,因为顾客急着要看,所以我只好每一页都用个自的flash file,就是那一页的button会变深色,我是manually放的,暂时顶住先,我知道这样子是行不通的 但是我不希望一个网站要用到7个各自的button
这是visual,这是点击第一个button后的样子,你看到第三个button那滑鼠吗,就是每用滑鼠rollover每个button时要变去深色



[ 本帖最后由 svenja 于 6-8-2008 07:00 AM 编辑 ]
回复

使用道具 举报

发表于 6-8-2008 08:40 AM | 显示全部楼层

回复 7# svenja 的帖子

首先,你要明白, 什么是instance name.
如果在你的情况的话,第一part _root.l都必须改为 _root.symbol
stop();
_root.symbol.onEnterFrame = function() {
        if(rest) {
                _root.symbol.gotoAndStop(1);
        }
        if(over) {
                _root.symbol.gotoAndStop(2);
        }
        if(clicked) {
                _root.symbol.gotoAndStop(3);
        }
}


自己花一些时间去想和研究instance name 的用意吧……

这是做给一个button的code罢了。。对吗?抱歉,没有flash可以test

对,没错。如果要做给不同的button, 就放不同的instance name.
如果click 别的button, 颜色要转回浅色,就必须要放
_root.symbol.onRelease = function() {
        _root.rest = false;
        _root.over = false;
        _root.clicked = true;
        _root.symbol2.clicked = _root.symbol3.clicked = _root.symbol4.clicked = false;
        _root.symbol2.rest = _root.symbol3.rest = _root.symbol4.rest = false;
}


*我明白,我的方法好像长了,麻烦了一些。可能还会有更好的方法,各位高手可以赐教。
回复

使用道具 举报

 楼主| 发表于 7-8-2008 05:23 AM | 显示全部楼层

回复 11# JohnChronox 的帖子

谢谢JohnChronox
会再花时间去缵,有任何问题会上来请教请教
回复

使用道具 举报

发表于 5-9-2008 08:23 PM | 显示全部楼层
看这个行吗? 请会复

bt=3;
mc0.clicked=1;
mc0.gotoAndStop(2);
for(i=0;i<bt;i++){
this['mc'+i].stop();
i>0?this['mc'+i].clicked=0:'';
this['mc'+i].onRollOver=function(){
  this.gotoAndStop(2);
  }
this['mc'+i].onRollOut=function(){
  this.clicked==0?this.gotoAndStop(1):'';
  }
this['mc'+i].onRelease=function(){
  for(i=0;i<bt;i++){
   eval('mc'+i).gotoAndStop(1);
   eval('mc'+i).clicked=0;
   }
  this.gotoAndStop(2);
  this.clicked=1;
  }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-12-2025 06:33 AM , Processed in 0.116133 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表