首页>>IT >> FLASH常用代码整理
FLASH常用代码整理
来源:来自网络 作者:不详 日期:2008-03-25 热度: 关键字:FLASH 代码

homepage_btn.onRelease = function () {
getURL("http://www.macromedia.com", _blank);
}
其中“homepage_btn”为按钮实例

您还可以使用 GET 或 POST 将变量与 URL 一起发送。如果正从应用程序服务器加载的页面(例如一个 ColdFusion Server (CFM) 页面)预计接收表单变量,则可以使用上述功能。例如,假定您要加载名为 addUser.cfm 的、预计接收 name 和 age 两个表单变量的 CFM 页面。为此,您可以创建一个名为 variables_mc 的影片剪辑,它定义如下所示的两个变量。

variables_mc.name = "Francois";
variables_mc.age = 32;

随后,以下代码将 addUser.cfm 加载到空浏览器窗口中,并传递到 POST 标头中的 CFM 页面 variables_mc.name 和 variables_mc.age。

variables_mc.getURL("addUser.cfm", "_blank", "POST");

有关更多信息,请参见getURL()。

创建自定义鼠标指针
标准鼠标指针就是用户的鼠标位置在操作系统屏幕上的表示。通过使用在 Flash 中设计的鼠标指针来代替标准鼠标指针,可以将用户的鼠标移动更紧密地集成到 SWF 文件中。本部分的范例使用的是一个看起来如同大箭头的自定义指针。不过,此功能的强大与否取决于您制作各种形态的自定义指针的能力,例如即将射门的足球,或盖在沙发上用于改变其颜色的织物布样。

要创建自定义指针,可在舞台上设计该指针的影片剪辑。然后在动作脚本中隐藏标准指针,并跟踪自定义指针的移动。要隐藏标准指针,可使用内置 Mouse 类的 Mouse.hide() 方法。要使用影片剪辑作为自定义指针,可使用 startDrag() 动作。要查看自定义指针的动画演示,可将鼠标指针滑过下面的 SWF 文件。

创建自定义指针:
创建影片剪辑,将其用作自定义指针并将该剪辑的实例放置在舞台上。
在舞台上选择该影片剪辑实例。
如果看不到“动作”面板,则选择“窗口”>“开发面板”>“动作”将其打开。
在“动作”面板中键入以下内容:
onClipEvent (load) {
Mouse.hide();
startDrag(this, true);
}
onClipEvent(mouseMove) {
updateAfterEvent();
}

第一个 onClipEvent() 处理函数在影片剪辑第一次在舞台上出现时隐藏鼠标;第二个处理函数在用户移动鼠标时调用 updateAfterEvent。

updateAfterEvent 函数在发生指定的事件后立即刷新屏幕,而不是在绘制下一帧时刷新,后者是默认行为。(请参见updateAfterEvent()。)

选择“控制”>“测试影片”来测试您的自定义指针。
当使用自定义指针时,按钮仍然起作用。将自定义指针放在时间轴的顶层是一个很好的方法,这样当您在 SWF 文件中移动鼠标时,它就可以在按钮和其它对象的前面移动。此外,自定义鼠标指针的“尖端”是您用作自定义指针的影片剪辑的注册点。因此,如果您希望影片剪辑的某一部分作为鼠标尖端,则应将剪辑的注册点坐标设置为该点的坐标。

--------------------------------------------------------

将名为“prety boy.swf”的外部SWF文件加载到当前名为“mc”的影片剪辑窗口
mc.loadMovie("prety boy.swf");

以下代码在用户单击名为 homepage_btn 的按钮实例时在空浏览器窗口中打开 macromedia.com 主页。
homepage_btn.onRelease = function () {
getURL("http://www.macromedia.com", _blank);
}

---------------------------------------------------------------
创建滑动的音量控件:
将某个按钮拖到舞台上。
选择该按钮,然后选择“修改”>“转换为符号”。选择影片剪辑行为时要小心。
这创建了一个在第一帧中带有按钮的影片剪辑。

选择该影片剪辑,然后选择“编辑”>“编辑所选项目”。
选择该按钮,然后选择“窗口”>“开发面板”>“动作”。
输入下列动作:
on (press) {
startDrag(this, false, left, top, right, bottom);
}
on (release) {
stopDrag();
}

startDrag() 参数 left、top、right 和 bottom 是在剪辑动作中设置的变量。

选择“编辑”>“编辑文档”返回到主时间轴。
在舞台上选择影片剪辑。
输入下列动作:
onClipEvent (load) {
top = _y;
bottom = _y;
left = _x;
right = _x+100;
_x += 100;
}
onClipEvent (enterFrame) {
_parent.song.setVolume(_x-left);
}

选择“控制”>“测试影片”来使用音量滑块。

--------------------------------------------------------------------

创建简单的线条绘画工具
您可以使用 MovieClip 类的方法在 SWF 文件播放时在舞台上绘制线条和填充。这样您就可以为用户创建绘画工具,并且可以通过响应事件在 SWF 文件中绘制形状。绘画方法包括
beginFill()、beginGradientFill()、clear()、curveTo()、endFill()、lineTo()、
lineStyle() 和 moveTo()。可以将这些方法应用于任何影片剪辑实例(例如 myClip.lineTo()),也可应用于某一级别 (_root.curveTo())。

lineTo() 和 curveTo() 方法分别用于绘制线条和曲线。您可以使用 lineStyle() 方法指定线条或曲线的线条颜色、粗细和 alpha 设置。moveTo() 绘画方法将当前绘画位置设置为您指定的 x 和 y 舞台坐标。

beginFill() 和 beginGradientFill() 方法分别用纯色填充或渐变填充来填充闭合路径,
endFill() 将在最后的调用中指定的填充应用于 beginFill() 或 beginGradientFill()。clear() 方法擦除已在指定的影片剪辑对象中绘制的内容。

有关更多信息,请参见MovieClip.beginFill()、
MovieClip.beginGradientFill()、MovieClip.clear()、MovieClip.curveTo()、MovieClip.endFill()、MovieClip.linSeTo()、MovieClip.lineStyle() 和MovieClip.moveTo()。

创建简单线条绘画工具:
在一个新文档中,在舞台上创建一个按钮,然后在属性检查器中输入 clear_btn 作为其实例名称。
在时间轴中选择第 1 帧,如果没有看到“动作”面板,则选择“窗口”>“开发面板”>“动作”将其打开。
在“动作”面板中输入以下代码:
_root.onMouseDown = function() {
_root.lineStyle(5, 0xFF0000, 100);
_root.moveTo(_root._xmouse, _root._ymouse);
isDrawing = true;
};
_root.onMouseMove = function() {
if (isDrawing == true) {
_root.lineTo(_root._xmouse, _root._ymouse);
updateAfterEvent();
}
};
_root.onMouseUp = function() {
isDrawing = false;
};
clear_btn.onRelease = function() {
_root.clear();
};

选择“控制”>“测试影片”对影片进行测试。单击并拖动鼠标来在舞台上绘制线条。单击该按钮可以擦除所绘制的内容。

--------------------------------------------------------

将声音附加到时间轴上:
选择“文件”>“导入”来导入一种声音。
在库中选择声音,右键单击 (Windows) 或按住 Control 键单击 (Macintosh),然后选择
“链接”。
选择“为动作脚本导出”和“在第一帧导出”,然后为其指定标识符 a_thousand_ways。
在舞台上添加一个按钮,然后将它命名为 playButton。
在舞台上添加一个按钮,然后将它命名为 stopButton。
在舞台上添加一个影片剪辑,然后将它命名为 speaker。
在主时间轴上选择第 1 帧,然后选择“窗口”>“开发面板”>“动作”。将以下代码添加到“动作”面板中:
speaker.stop();
song = new Sound();
song.onSoundComplete = function() {
speaker.stop();
};
song.attachSound("a_thousand_ways");
playButton.onRelease = function() {
song.start();
speaker.play();

};
stopButton.onRelease = function () {
song.stop();
speaker.stop();
}

该代码首先停止扬声器影片剪辑。然后创建一个新的 Sound 对象 (song),并向该对象附加链接标识符为 a_thousand_ways 的声音。接下来,它为 song 对象定义 onSoundComplete 处理函数,该函数将在声音结束后停止 speaker 影片剪辑。最后,与 playButton 和 stopButton 对象关联的 onRelease 处理函数使用 Sound.start() 和 Sound.stop() 方法开始和停止该声音,并且还播放和停止 speaker 影片剪辑。

选择“控制”>“测试影片”来试听声音。

---------------------------------------------------------------------------

可以自由拖动的对象

在影片剪辑加上以下代码:
on(press) 一个 startDrag() 动作,使瓢虫可以拖动。因为脚本被附加到 bug 实例,所以关键字 this 表明可拖动的是 bug 实例:

on (press) {
this.startDrag();
}

on(release) 一个 stopDrag() 动作,可以停止拖动动作:

on (release) {
stopDrag();
}

----------------------------------------------

设置影片剪辑的颜色值:
选择舞台上的一个影片剪辑。
在属性检查器中,输入 carColor 作为实例名称。
创建一个名为 color chip 的按钮,接着在舞台上放置该按钮的四个实例,并将它们分别命名为 red、green、blue 和 black。
在主时间轴上选择第 1 帧,然后选择“窗口”>“开发面板”>“动作”。
若要为 carColor 影片剪辑创建一个 Color 对象,请在“动作”面板中添加以下代码:
myColor = new Color(_root.carColor);

要使蓝色按钮将 carColor 影片剪辑的颜色更改为蓝色,请向“动作”面板添加以下代码:
_root.blue.onRelease = function(){
myColor.setRGB(0x0000ff)
}

十六进制值 0x0000ff 为蓝色。下表显示您将使用的其它颜色及其十六进制值:

为其它按钮(红色、绿色和黑色)重复执行第 6 步,以便将影片剪辑的颜色更改为相应的颜色。您的代码现在应该如下所示:
myColor = new Color(_root.carColor)
_root.blue.onRelease = function(){
myColor.setRGB(0x0000ff)
}
_root.red.onRelease = function(){
myColor.setRGB(0xff0000)
}
_root.green.onRelease = function(){
myColor.setRGB(0x00ff00)
}
_root.black.onRelease = function(){
myColor.setRGB(0x000000)
}

选择“控制”>“测试影片”来改变影片剪辑的颜色

----------------------------------------------------------------------

在一个影片剪辑和舞台上的某一点之间执行冲突检测:
在舞台上创建一个新的影片剪辑,然后在属性检查器中输入 box 作为实例名称。
在舞台上创建一个动态文本框,然后在属性检查器中输入 status 作为实例名称。
在时间轴的图层 1 上选择第一个帧。
如果看不到“动作”面板,选择“窗口”>“开发面板”>“动作”将其打开。
在“动作”面板中添加以下代码:
box.onEnterFrame = function () {
status.text = this.hitTest(_xmouse, _ymouse, true);
}

选择“控制”>“测试影片”,然后让鼠标滑过影片剪辑来测试冲突。
只要鼠标位于不透明的像素上方,就会显示值 true。

------------------------------------------------------------------------

执行两个影片剪辑之间的冲突检测:
把两个影片剪辑拖到舞台上,然后分别为它们指定实例名 car 和 area。
在舞台上创建一个动态文本框,然后在属性检查器中输入 status 作为实例名称。
在时间轴的图层 1 上选择第一个帧。
如果看不到“动作”面板,选择“窗口”>“开发面板”>“动作”将其打开。
在“动作”面板中输入下面的代码:
area.onEnterFrame = function () {
status.text=this.hitTest(car);
}
car.onPress = function (){
this.startDrag(false);
updateAfterEvent();
}
car.onRelease = function () {
this.stopDrag();
}

选择“控制”>“测试影片”,然后拖动影片剪辑以测试冲突检测。
只要汽车边框与停车区域的边框发生相交,该状态就会变为 true。

------------------------------------------------------------------------------------------

创建自定义指针:
创建影片剪辑,将其用作自定义指针并将该剪辑的实例放置在舞台上。
在舞台上选择该影片剪辑实例。
如果看不到“动作”面板,则选择“窗口”>“开发面板”>“动作”将其打开。
在“动作”面板中键入以下内容:
onClipEvent (load) {
Mouse.hide();
startDrag(this, true);
}
onClipEvent(mouseMove) {
updateAfterEvent();
}

说明:本站大部分资料来源于网络,版权归原作者所有;本站对其引发的观点、立场等纠纷问题概不负责!

评论

发表评论