FLASH遇到了难题?怎么给按钮加函数?

FLASH遇到了难题?怎么给按钮加函数?,第1张

首先,新建一个“FLASH文档“——调整好影片大小——插入新元件——铵钮

然后做一个按钮元件,d起——指针经过——按下——点击

分别将这几个帧的内容加上去,这些都很简单,我弄的时候也没有人教,自己摸索也会的,完成之后点击场景,回到场景来

然后按CTRL+L右边打开库,在库里可以看到你刚才做的按钮元件,按住它,把它拉到场景来,点击它一下,按下“F9”添加动作(代码)

on (press)

{

getURL("index.htm")’这里的“index.htm”是你你要连的文件名,你可以改的只有这个地方。单引号开始后面的是我注解的内容,你可以把它删除

}

下面的这种是连接网址的:

on (press)

{

getURL(http://www.flash8.net, "_blank")

AlignMode (读写)

语法 AlignMode As Long

说明 对齐方式(与 SAlign 属性联动) 当控件的 长宽比例与影片不一致且 WMode 不为 ExactFit 时 影片(没有被放大的)在控件中显示的位置可用该属性调整 该属性值由标志位组成 如图 将该属性值(二进制)中相 应的位标记为 就设置了相应的对齐方向

属性值与相应的对齐方式(后面括号里是二进制数)

左对齐( )  右对齐( )  顶对齐 ( )  底对齐( )

也可以组合各种对齐方式 同时将两个或以上的位标 记为 也就是将这四个基本值组合相加 比如同时左对齐 和顶对齐 属性值则设为 ( )

例子 设置影片为右对齐

movie AlignMode =

BackgroundColor(读写) 语法 BackgroundColor As Long 说明 影片的背景色(与 BGColor 联动) 以(红× +绿× +蓝)计算颜色值 红绿蓝颜色取 值范围( ) 默认的影片背景色为 如果影片 设置了底色或有图片当作背景 那么看不出来该属性值的 改变会有什么影响

例子 将影片背景色设为蓝色

movie BackgroundColor =

Base (读写)

语法 Base As String

说明 指定用于解决影片中所有相对路径的声明的基地址 当影片与其需要的其他文件不在同一目录中的时候该 属性特别有用 如不特别指定 Base 的值默认为 也就 是当前影片所在的路径

例子

movie Base = Http:///pathname /

pathname

BGColor (读写)

语法 BGColor As String

说明 影片的背景色(与 BackgroundColor 联动) 与 BackgroundColor 不同的是 BGColor 是一个六位的十六进 制数 每两位分别代表红绿蓝颜色值 如 FFEEAA 表示 红色值为 FF 绿色值为 EE 蓝色值为 AA

例子 将影片背景色设为红色

movie BGColor = FF

DeviceFont (读写)

语法 DeviceFont As Boolean

说明 决定是否使用影片内嵌的字体 默认值为 False 将该属性值设为 True 则强制播放器不使用影片中 内嵌的字体而使用本地系统字体

例子 movie DeviceFont = True

EmbedMovie (读写)

语法 EmbedMovie As Boolean

说明 影片是否被存贮到控件所在的容器中 当你已 载入一个影片后将该属性设为 True 播放影片时就不必再 去读 SWF 文件了 这使得在 PowerPoint 简报或 VB 程序 里使用 Flash 影片更容易 但将该属性设为 True 后 控 件的 Movie 属性就不再接受新的值了 要想播放另一个影 片(给 Movie 属性赋新值) 必须先将 EmbedMovie 属 性设为 False

例子

movie EmbedMovie = True

FrameNum (读写)

语法 FrameNum As Long

说明 影片当前帧的编号 (从 开始计数 ) 设置 该属性值将使影片停在由 FrameNum 指定的帧处

例子 显示当前帧数

MsgBox 当前显示的是第 &movie FrameNum &

使影片显示第 帧 Bomovie FrameNum =

Loop (读写)

语法 Loop As Boolean

说明 是否循环播放 设为 True 是循环播放 设为 False 则只播放一次

例子

movie Loop = True

Menu (读写)

语法 Menu As Boolean

说明 是否显示菜单 设为 True 显示所有菜单 设 为 False 菜单被屏蔽 但仍有一项 About Macromedia Flash Player 如果你实在不喜欢这个菜单 应该在程 序中通过拦截鼠标消息的方法来达到目的 与在独立的 F l a s h 播放器中不同的是 在控件的右键菜单里点

About 的话 将打开浏览器到 Macromedia 的网站上去 看 About 了

例子

movie Menu = False

Movie (读写)

语法 Movie As String

说明 要播放的影片路径(URL ) 设置该属性为 一个 SWF 文件的 URL 将载入文件并播放它 若影片是在 本地硬盘上 要写成从盘符开始的绝对路径 若影片是在某网站上 也要写全 URL 地址

例子

movie Movie = 或

movie Movie = c:\temp\test swf

Playing (只读)

语法 Playing As Boolean

说明 当前播放状态 如果影片正在播放 该属性 值为 True 否则为 False

例子

If movie Playing = False Then MsgBox 影片已停止播放! End If

Quality (读写)

语法 Quality As Long

说明 画面质量(与 Quality 联动) Quality 可以取:

——相当于 Quality 取 Low

——相当于 Quality 取 High

——相当于 Quality 取 AutoLow

——相当于 Quality 取 AutoHigh 例子

movie Quality =

Quality (读写)

语法 Quality As String

说明 画面质量(与 Quality 联动) Quality 可以取: Low 偏重于播放速度而不管显示效果 而且不启用消锯齿功能

High 偏重于画面而不管播放速度 并且总是启用 消锯齿功能 如果影片中不包含动画就平滑处理位图 如 果有动画 那么位图就不被平滑处理 (这里的动画应该 是把一张图片做平移或旋转)

AutoLow 先着重于播放速度 但只要有可能就改 善显示效果 一开始播放时先禁用消锯齿功能 如果播放 器检测到处理器能承受得了 就启用消锯齿功能

AutoHigh 一开始是播放速度和显示效果并重 但 如有必要就牺牲画质确保速度 开始播放时就启用消锯齿 功能 但如果实际的帧速率比设计时指定的速率慢了 就 禁用消锯齿功能来提高播放速度

例子

movie Quality = High

ReadyState(只读)

语法 ReadyState As Long

说明 影片的当前状态 ReadyState 可以取

——正在载入

——未初始化

——已载入

——正在交互

——完成 例子

If movie ReadyState = Then

MsgBox 影片载入完成! End If

SAlign (读写)

语法 SAlign As String

说明 对齐模式(与 AlignMode 联动) 当 AlignMode

代表各对齐模式的位被置 时 SAlign 值也相应被设为

L (Left) T (Top) R (Right) B (Bottom)各字符的组合( L T R B 的先后顺序不变)

例子 设置影片为左对齐和顶对齐

movie SAlign = LT

Scale (读写)

语法 scale As String

说明 缩放模式(与 ScaleMode 联动) Scale 可以 取:

ShowAll ——在控件内显示全部影片区域 保持影片 长宽比例不变 影片的大小决定于控件长或宽中较小的一 边

NoBorder ——在控件内显示部分影片区域 保持影片 长宽比例不变 影片的大小决定于控件长或宽中较大的一 边

ExactFit ——在控件内显示全部影片区域 将影片的长 宽比例强制等于控件的长宽比例

例子

MsgBox 当前的缩放模式是 &movie Scale

ScaleMode(读写)

语法 ScaleMode As Long

说明 缩放模式(与 Scale 联动) ScaleMode 可以取

——相当于 Scale 取 ShowAll

——相当于 Scale 取 NoBorder

——相当于 Scale 取 ExactFit

例子 使影片的缩放模式改成 ExactFit

movie ScaleMode =

Stacking (读写)

语法 Stacking As String

说明 用于 HTML 将 Flash Player 当成 HTML 中 的一种 行为 使用时 该属性决定 Flash 影片相对于与其 参照的 HTML 内容如何显示 (有关 行为 请参阅样式表 的资料) Stacking 可以取

none —— 行为 不显示

replaceall —— 行为 的显示取代全部其他元素的内 容 包括背景

content —— 行为 的显示只取代其他元素的内 容

background —— 行为 的显示只取代其他元素的背 景

below —— 行为 在所有其他元素内容的下面显 示

belowflow —— 行为 以反向 Z 顺序显示在其他元素 的子对象之上 但在该元素主要内容之上

aboveflow —— 行为 以正向 Z 顺序显示在其他元素 的子对象之下 但在该元素主要内容之上

above —— 行为 显示在所有其他元素的内容之上

top —— 行为 的显示置于整个页面内容之上 例子

movie Stacking = below

TotalFrames(只读)

语法 TotalFrames As Long

说明 返回影片中总帧数 该参数要到影片载入完成 才有效(ReadyState= )

例子

If movie ReadyState = Then

MsgBox 本影片共有 &movie TotalFrames &帧

End If

WMode (读写)

语法 WMode As String

说明 控件的窗口模式 WMode 可以取 Window —— WMode 属性的默认值 按 Flash 播放器

典型的方式工作 即在控件的矩形窗口中播放影片 这样一 般都能提供最快的动画效果

Opaque ——使影片不透明 Transparent ——创建一个透明的影片 如果影片中有

透明的片段 放到这里时 就可以看到控件下面的背景 但 使用此属性值 动画的播放速度可能会慢一些

例子

movie WMode = Transparent

方法:

Back

语法 Back()

说明 影片后退一帧 并且停止播放 例子

movie Back

Forward

语法 Forward()

说明 影片前进一帧 并且停止播放 例子

movie Forward

GotoFrame

语法 GotoFrame(FrameNum As Long) 说明 将影片跳转到由 FrameNum 指定的帧 并且

停止播放 如果所指定的帧还未载入 播放器前进到最后 的可用帧并停下 在调用过程中会产生无法预料的后果 最好使用 PercentLoaded 方法来确定是否已载入足够的影片 来执行本方法 参数 FrameNum 是从 开始的 这和 Flash 中的 Goto 动作不一样 它是从 开始的

例子 跳转到影片的第 帧

movie GotoFrame

LoadMovie

语法 LoadMovie(layer As Long url As String) 说明 将由 url 指定的影片载入到由 layer 指定的层上 例子 将 movie swf 载入至 层

movie LoadMovie movie swf

Pan

语法 Pan(x As Long y As Long mode As Long) 说明 将一个放大过的影片平移由 x 和 y 指定的距离

x 和 y 均为相对值 即控件相对于影片来说平移的距离(你 可以想象控件是一个窗户 影片是我们从窗户里看到的放 在外面的布景 我们看到窗户相对于布景平移了一些距离 那是外面的布景在动 而窗户是不动的) 用 mode 参数 来指定 x 和 y 的值是像素还是窗口的百分比 当 mode= 时 坐标系以像素为单位 mode= 时坐标系就以窗口的百分 比来计算 平移并不能超出影片的边框 也就是说 往 一个方向平移最多到达影片的边缘与控件对齐的程度

例子 控件相对于影片向左向上各平移 个像素(当 然控件不会动 是影片向右向下平移了 )

movie Pan

Play

语法:Play()

说明: 开始播放影片 例子:

movie Play

Rewind

语法:Rewind()

说明: 倒带 返回到影片的第一帧 例子:

movie Rewind

SetVariable

语法:SetVariable(name As String value As String) 说明:将由 name 指定的 Flash 变量值设为 value

例子:movie SetVariable /Form:UserName John Smith

SetZoomRect

语法:SetZoomRect(left As Long top As Long right

As Long bottom As Long)

说明: 将影片中指定的矩形区域放大到控件的大小 left(左) top(顶) right(右) bottom(底)的坐标值是相 对于控件中的影片有效位置计算的 注意哟 这个函数是 从影片的有效区域的左上角开始计算 而不是控件的左上 角

例子 放大影片中从左上角开始的 × 点的矩 形区域

pointsToTwips =

movie SetZoomRect * pointsToTwips

* pointsToTwips

Stop

语法 Stop()

说明 停止播放影片 例子 movie Stop

StopPlay

语法 StopPlay()

说明 停止播放影片 例子 movie StopPlay

TCallFrame

语法 TCallFrame(target As String FrameNum

As Long)

说明 在由 t a r g e t 指定的时间轴中 执行由 FrameNum 指定的帧中的动作

例子 要运行主时间轴中第 帧的动作

movie TCallFrame /

TCallLabel

语法 TCallLabel(target As String label As String) 说明 在由 target 指定的时间轴中 执行由 label 指

定的帧中的动作 例子 要运行主时间轴中名为 HandleScriptNotify

的帧中的动作

movie TCallLabel / HandleScriptNotify

TGotoFrame

语法 TGotoFrame(target As String FrameNum

As Long)

说明 对于由 t a r g e t 指定的时间轴 转到由 FrameNum 指定的帧

例子

movie TGotoFrame /MovieClip

TGotoLabel

语法: TGotoLabel(target As String label As String) 说明 对于由 target 指定的时间轴 转到由 label 指

定的帧

例子 movie TGotoLabel /MovieClip MyLabel

TPlay

语法 TPlay(target As String) 说明 播放由 target 指定的时间轴 例子 movie TPlay /MovieClip

TSetProperty

语法 TSetProperty(target As String property As

Long value As String)

说明 对于由 target 指定的时间轴 把由 property 指 定的属性设为由 value 指定的值(字符串) property 是一个 代表相应属性的编号(详情请参阅附表)

例子

Dim nameIndex As Long

nameIndex =

movie TSetProperty /MovieClip nameIndex

NewName

TSetPropertyNum

语法 TSetPropertyNum(target As String property

As Long value As Double)

说明 对于由 target 指定的时间轴 把由 property 指定的属性设为由 value 指定的值(数字) property 是 一个代表相应属性的编号 (详情请参阅附表 )

例子

Dim visibilityIndex As Long visibilityIndex =

movie TSetProperty /MovieClip visibilityIndex

TStopPlay

语法 TStopPlay(target As String) 说明 停止播放由 target 指定的时间轴 例子

movie TStopPlay /MovieClipToStop

Zoom

语法 Zoom(factor As Long) 说明 以 factor 指定的相对百分比来缩放视图 factor

可以理解为从控件窗口看到的影片占实际大小的百分比 将

factor 设为 则视图还原成 % 大小 当前视图已经是

% 时不能再将其缩小

例子 将影片放大两倍 movie Zoom 下面的方法都有返回值

CurrentFrame

语法 CurrentFrame() As Long 说明: 返回影片的当前帧数 影片的第一帧为 例子

Dim frameNow As Integer frameNow = movie currentFrame

FlashVersion

语法 FlashVersion() As Long

说明 返回控件版本号 该值共有三个字节 依次是主 版本号 次版本号 修订版本号 如我用的 Flash 播放器控 件用此方法返回值是 相当于十六进制的

&h A 相当于

例子 下列程序显示你所使用的控件版本号

Dim verNum majorNum minorNum revisionNum

As Long verNum=movie FlashVersion majorNum=verNum \

minorNum=(verNum majorNum * ) \

revisionNum = verNum Mod

MsgBox 你的 Flash 播放器控件的版本号 &

majorNum &&minorNum &&revisionNum

GetVariable

语法 GetVariable(name As String) As String

说明 返回 name 指定的 Flash 变量的值 如果变量 不存在则返回 null

例子

Dim firstName radioButtonValue As String firstName = movie GetVariable FirstName radioButtonValue = movie GetVariable( /Form/

RadioButton:Value )

IsPlaying

语法 IsPlaying() As Boolean

说明 如果影片正在播放则返回 true 例子

If movie IsPlaying Then

MsgBox 影片正在播放中! End If

PercentLoaded

语法 PercentLoaded() As Long

说明 返回目前已经载入的影片的百分比 取值范围 从 到

例子

Dim loaded As Boolean

If movie PercentLoaded = Then loaded = true

End If

TCurrentFrame

语法 TCurrentFrame(target As String) As Long 说明 返回由 target 指定的时间轴中当前帧的号码 返 回的帧号码是从 开始的 也就是说影片的第一帧为 第

二帧为 以此类推 例子

Dim currentFrame As Long

currentFrame = movie TCurrentFrame( /MovieClip )

TCurrentLabel

语法 TCurrentLabel(target As String) As String

说明 返回由 target 指定的时间轴中当前帧的标签 如果没有当前帧的标签 则返回一个空字符串

例子

Dim currentLabel As String

currentLabel = movie TCurrentLabel( /MovieClip )

TGetProperty

语法 TGetProperty(target As String property

As Long) As String

说明 对于由 target 指定的时间轴 返回由 property 指定的属性值(字符串) 其中 property 是一个代表相应 属性的编号(详情请参阅附表)

例子

Dim nameIndex As Long Dim name As String nameIndex =

name = movie TGetProperty( / nameIndex)

TGetPropertyNum

语法 TGetPropertyNum(target As String property

As Long) As Double

说明 对于由 target 指定的时间轴 返回由 property 指定的属性值(数字) 其中 property 是一个代表相应属 性的编号(详情请参阅附表)

例子

Dim framesLoadedIndex As Long Dim framesLoaded As Double framesLoadedIndex =

framesLoaded = movie TGetProperty( / framesLoadedIndex)

附表 获取及设置属性 相应的每个属性的编号都可用 在 TGetProperty TGetPropertyAsNumber TSetProperty 或 TSetPropertyNum 中 以指出将要访问的属性

事件:

FSCommand

语法 FSCommand(mand As String args As

String)

说明 在 Flash 中为影片添加的 FSCommand 动作可 以从影片中传递信息给 Flash 播放器 Flash 播放器或包含 播放器控件的网页或程序播放这个影片时就根据得到的这些 信息执行相应的动作 从而实现影片内部与外部应用的交 互 *** 作 如在 F l a s h 中给一个按钮图片添加如下的 Action

on(release) {

f *** and( fullscreen true )

}

当 Flash 播放器播放这个文件时点击按钮 播放器就 会切换到全屏模式 下面是 Flash 自带的播放器能识别的 命令和它们的参数

命令 quit

参数 无参数

作用 关闭播放器 命令 fullscreen 参数 true 或 false

作用 设置为 true 使播放器以全屏模式播放 设置 为 false 使播放器回到一般窗口模式播放

命令 allowscale

参数 true 或 false

作用 设为 false 将使影片不随播放器大小改变而改 变 始终保持原始尺寸 相当于播放器菜单中的 % 设为 true 则恢复影片随播放器大小而改变的尺寸 相当于 播放器菜单中的 Show All

命令 showmenu

参数 true 或 false

作用 设为 true 显示全部菜单 包括菜单栏和播放 区的右键菜单 设为 false 菜单栏不显示 播放区的右键 菜单中只有一项 About Macromedia Flash Player

命令 exec

参数 应用程序的路径及名称 作用 执行一个指定的应用程序 如在 Flash 影片中

添加动作为

f *** and( exec regedit )

则播放器播放影片时执行此动作会打开 注册表编辑 器 程序 注意哟 Flash 自带的播放器接收到这些命 令后会执行相应的动作 但在控件中不会有任何反应 只 能由程序在 FSCommand 事件中分析接收到的 mand 和args 并编程做出相应处理

OnProgress

语法 Event OnProgress(percentDone As Long) 说明 发生在 Flash 影片下载时 percentDone 是影

片已下载的百分比 取值从 到

例子 在窗体标题栏中显示下载进度

Private Sub movie_OnProgress(ByVal percentDone

As Long)

form Caption = 影片已下载 &percentDone

&%

End Sub

OnReadyStateChange

语法 Event OnReadyStateChange(newState As

Long)

说明 发生在控件的准备状态改变时 下面列出了

newState 可能的值

——正在载入

——未初始化

——已载入

——正在交互

——完成

例子 影片载入完成后出现提示信息 然后开始播放 影片

Private Sub movie_OnReadyStateChange(newState As

Long)

If newState = Then

MsgBox 影片载入完成! &vbCrLf &影片总帧 数 &movie TotalFrames

movie Play

End If

lishixinzhi/Article/program/ASP/201311/21809

首先你需要做一个影片剪辑,共有3帧,第一帧上放一个初始状态的影片剪辑,并且按住这帧,打开动作面板输入:stop()然后在第二帧上放置鼠标经过时你想要的效果影片剪辑,一样帧上面stop()第三帧是按下去时想展现的影片剪辑一样stop()

下面是关键:

在舞台第一帧上输入如下as:

mouse.hide()

var

adis=1

function

sati

()

{

_root.mc._x=_xmouse

_root.mc._y=_ymouse

if(_root.mvclip.hittest(_root._xmouse,_root._ymouse,true))

{

if(adis==1)

{

_root.mc.gotoandstop(2)

}

}else{

if(adis==1)

{

_root.mc.gotoandstop(1)

}

}

updateafterevent()

}

setinterval(sati,1)

_root.mvclip.onmousedown=function

()

{

if(_root.mvclip.hittest(_root._xmouse,_root._ymouse,true))

{

adis=0

_root.mc.gotoandstop(3)

}

updateafterevent()

}

_root.mvclip.onmouseup=function

()

{

adis=1

updateafterevent()

}

ok,下面来解释:

mc这里是要跟随鼠标的影片剪辑,就是先头叫你天三个帧的那个。

mvclip这里是你要碰到的影片剪辑或按钮。

mouse.hide()让鼠标隐藏。

var

adis=1是条件判断中用到的一个变量,等下会讲。

function

sati

()

{//创建一个叫sati的自定义函数

_root.mc._x=_xmouse让mc影片剪辑跟随鼠标,就是x坐标跟鼠标相等。

_root.mc._y=_ymouse让mc的y坐标跟鼠标相等。

if(_root.mvclip.hittest(_root._xmouse,_root._ymouse,true))

{

if(adis==1)

{

_root.mc.gotoandstop(2)

}

这个判断的意思是如果mvclip这个影片剪辑(hittes是判断相交)与你的鼠标的

x轴y轴同时相交。

再次判断adis这个变量,目的是不然这个函数与下面的函数让mc转到并停止二个位置,这个相交时mc转到第2帧,下面要按下时执行动作,可是按下时也会是相交的,所以用个变量分开。

}else{如果两个影片不相交

if(adis==1)

{且变量是面向sati这个函数的。

_root.mc.gotoandstop(1)当然是要让跟随鼠标的影片回到初始状态。

}

}

updateafterevent()时时更新舞台,可以更流畅。

}

setinterval(sati,1)让我们上面sati函数的代码时时执行(每时每刻都执行)

_root.mvclip.onmousedown=function

()

{当鼠标在mvclip上按下时。

adis=0不让前面function自定义函数里面的mc的goto语句执行。前面有条件要adis是等于0时。

if(_root.mvclip.hittest(_root._xmouse,_root._ymouse,true))

{如果鼠标在

mvclip上.

_root.mc.gotoandstop(3)按下时专门让跟随鼠标的转到第三帧。

}

updateafterevent()

}

_root.mvclip.onmouseup=function

()

{当鼠标在mvclip上松开时。

adis=1回复sati这个自定义函数里面对mc的 *** 作。因为我们需要松开后继续执行sati里面判断内的goto

updateafterevent()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7954452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存