我真的很讨厌听起来像“Programatticus Takeoveriticus”(我的团队一直在开玩笑),但是大多数 Flash 程序员都知道的“纹理”可能不是最好的方法。通常,纹理是指用于填充区域的图像。
根据您的信息,我假设您的“纹理”是图像......可能以 .png 或 .gif 格式保存?您要做的就是将这些导入到您的库中。
我使用的是 CS5.5,所以这可能有点偏离,但对于 CS3 来说应该很接近。
转到文件->导入->导入到库...
选择要使用的图像,然后按“导入”。它们将出现在您的库窗格中,通常位于屏幕的右侧(但可能在其他位置,具体取决于您的布局。如果您遇到问题,请使用“窗口”菜单找到它。)
现在,转到插入-> 新符号...
为符号命名。符号名称的最佳做法是仅使用字母数字字符和下划线(无空格或其他标点符号)。
现在,选择一个类型。我为此推荐 MovieClip。
不理会其他所有内容,然后按“确定”。您的舞台将切换到仅编辑该影片剪辑。
看看你的时间线。这个很重要。单击时间轴上的第一帧,然后将您想要用于未静音图像的图像从库中拖到舞台上。使用自由变换工具根据需要调整大小。
现在,单击您刚刚放置的图像。转到“属性”窗格并将其位置设置为 0 left, 0 top。
现在,在时间轴中,单击第二帧。对图像重复上述步骤以进行静音。请注意,第二张图片的大小与第一张图片完全相同。
将两个图像放在时间轴上后,在相应的帧中,单击第一帧。转到“操作”选项卡(右键单击框架并单击“操作”)。
输入以下语句。
stop();
对第二帧重复此操作。
停止();声明只是告诉 Flash 停留在该帧上,直到代码告诉它不这样做。
现在,在顶部,单击蓝色的“返回”按钮返回主舞台。您刚刚创建的对象将位于舞台上的某个位置。(如果不是,请将其从库中拖到舞台上。)将此对象放置在您想要的位置,并根据需要调整其大小。
单击对象以选择它,然后转到“属性”窗格。在顶部显示“”的位置,输入该对象实例的工作名称。如果您在这个阶段只使用过一次,只需将其命名为与库中相同的名称(无论您之前如何命名)。对于本示例,我将称其为“btnMute”。
现在,在您拥有所有代码的区域,您需要输入以下内容:
//Here we create a boolean (true/false) variable for whether sound is muted.
var muted:Boolean = false;
//Create the event listener for when the mute button is clicked.
btnMute.addEventListener(MouseEvent.CLICK, muteSound);
//Here is the event handler for the above listener.
function muteSound(evt:MouseEvent):void
{
//If muted is true...
if(muted)
{
//Set muted to false
muted = false;
//Change button to "unmuted" state.
btnMute.gotoAndStop(1);
}
//If muted is false...
else
{
//Set muted to true
muted = true;
//Change button to "muted" state.
btnMute.gotoAndStop(2);
}
}
很多代码应该看起来很熟悉。我要指出的主要内容是这行btnMute.gotoAndStop(...)
这允许您更改特定 MovieClip 上显示的帧。只需将语句中的“...”替换为您要转到的帧号即可。
或者,您可以使用代码btnMute.gotoAndPlay(...);
。因为您stop();
在每个框架上都有代码,所以将完成相同的事情。
gotoAndStop(...);
和之间的主要区别在于gotoAndPlay(...);
“AndStop”不执行帧上的任何代码,也不会在没有该stop();
函数的情况下播放帧,而“AndPlay”会。
我希望这会有所帮助。再一次,很抱歉推荐一种不同的方法,因为当人们对我这样做时,这是我最讨厌的。但是,在大多数情况下,您会发现这种方式比隐藏和显示不同的项目来做同样的事情要好得多。