用滑块控制文字移动
建议先把原文件下载下来,打开以便对照下面的讲解
1.我们要用一个按纽来拖动文字,那么就要有一个放文字的mc(mc是指影片剪辑),在场景中写一段文字,选种文字,按F8把他转变成mc,mc的名称为:宣传口号,同时把他的实例名称设为:wby。
2.新建一个mc,取名为:主场景的mc,其实例名称设为:any。那么我们在这个mc里主要放些什么呢???
别急,我们来放一个空的mc和一个按纽,(空的mc???没听说过吧??呵呵,等一下你就知道他的作用了。)按Ctrl+F8键,新建一个mc,取名为:空的mc,不用为它取实例名称。
既然是空的mc,那么它是没有任何图形和文字的,但是注意它还是有内容的,不然我们要它干吗??它的内容就是——————代码,别怕,我一定会给你讲清楚的,但是我们还是先讲怎么做,好吗??
在这个空的mc里面,我们共放两个空白关键桢(即它的第一第二桢都是空白关键桢),在第一桢上我们加入下列代码:
setProperty(wbh, _y, wbyy - (_y - ans) / anh * (getProperty(wbh, _height) / 1.300000));
}
我翻译一下:告诉在场景中的“主场景的mc”(实例名称设为:any的那个)设置一个叫做wbh的对象的纵坐标的属性,后面wbyy - (_y - ans) / anh * (getProperty(wbh, _height) / 1.300000)是这个叫做wbh的对象的纵坐标的值。(参见金闪客论坛http://goldflash.lpscn.com的见首页 >> >> 网页技术区 >> 技术交流区 [求助]代码不懂)
我们在第二桢上我们加入下列代码:
好了这个空的mc搞定了。
回到影片剪辑——主场景的mc中来,(注意不是回到主场景)
这个空的mc我们不管它,下面做一个按纽取名为:按纽,不用为它设置实例名称。在按纽上加入以下代码:
{
startDrag("", false, _x, ans, _x, anw);
}
on (release, releaseOutside)
{
stopDrag();
}
拖动命令的格式可以写成
startDrag(target,[lock ,left , top , right, bottom])
或target.startDrag([lock ,left , top , right, bottom])
其中参数
target 是指拖动的影片剪辑的目标路径。
lock 是一个逻辑值,指定可拖动影片剪辑是锁定到鼠标位置中央 (true),还是锁定到用户首次单击该影片剪辑的位置上 (false)。此参数是可选的。
left、top、right、bottom 相对于影片剪辑父级坐标的值,这些值指定该影片剪辑的约束矩形。这些参数也是可选的。
我翻译一下:当鼠标按下时,开始拖动这个(""是指这个东东,既按纽)false表示可拖动影片剪辑锁定到用户首次单击该影片剪辑的位置上。呵呵,有点不好懂是吧??我是这样理解的:就是每次打开这个文件该按纽的位置是都是一样的,不会因为你这次拖动了它,下次打开这个文件就跑到拖动后的位置去了。
拖动按纽是有一个范围限制的,看看有两个 _x,表明它的横坐标已经限死,只能是按纽的当前横坐标,也就是说,这个按纽只能上下移动了。
当鼠标放下,停止拖动。
下面我们发现有一些怪怪的值,比如 ans, anw,wbh, wbyy 等,好象我们还没有给他们定义,是吧?
接着我们来定义这些值,是在什么地方定义这些值呢,在影片剪辑——主场景的mc中我们新建一层,在这一层的空白关键桢上放代码来定义这些值,代码如下:
ans = _y;//将此时的鼠标所在位置的纵坐标付值给变量ans,即按纽拖动前的纵坐标
anw = Number(ans) + Number(anh);//仔细想想,一定不难猜到这是鼠标可以拖动的底限
wbh = _root.wby;
wbyy = getProperty(wbh, _y);
这最后两句
wbh = _root.wby;是将主场景中的wby,也就是文字mc定义给变量wbh
因为我们的文字是可以动的,你可以将它理解为把场景中的文字mc,那个不会动的文字mc放到影片剪辑——主场景的mc中来,并且顺便给了它个变量名:wbh
呵呵,现在你知道
中的wbh是谁了吧??
那么wbyy = getProperty(wbh, _y);意思就是将随时获取到的wbh的纵坐标的值付值给变量wbyy;
现在你知道为什么文字会动了吧??
最后把这个影片剪辑——主场景的mc拖到场景中就ok了!
补充:flash教程,As3.0