Adobe CS3 ActionScript 3按钮图形更改

时间:2012-06-12 21:24:50

标签: flash button actionscript

我是Flash的新手,作为一个学校项目,我被告知使用Flash创建一个功能齐全的网页。我在photoshop中完成了大量纹理,并且相当成功地让它们执行正确的动画。但是我想在角落里有一个静音按钮,当激活时会在两个纹理之间切换。我遇到的问题是让他们真正做任何事情。

正如我所说,我完全知道并且不知道编码的语法或布局。我已经阅读了大量的教程,并且我总是遇到编译器错误,例如“包不能嵌套”或“Muted不能被访问等等”。

目前我有两个名为“Muted”和“UnMuted”的按钮图层。我真的需要一些建议,因为我很快就会失去耐心。我目前没有代码可以给你们,因为我所得到的一切都不起作用,而且似乎非常不准确。

提醒一下,我使用Adobe Flash CS3和ActionScript 3。

感谢您提供任何帮助!

2 个答案:

答案 0 :(得分:1)

我真的很讨厌听起来像“Programatticus Takeoveriticus”(与我的团队一直在开玩笑),但大多数Flash程序员都知道它们的“纹理”可能不是最好的方法。通常,纹理是指用于填充区域的图像。

根据您的信息,我假设您的“纹理”是图像...可能以.png或.gif格式保存?您要做的是将它们导入您的库。

我使用的是CS5.5,所以这可能有些偏差,但对于CS3来说这应该是关闭的。

转到文件 - >导入 - >导入库...

选择要使用的图像,然后按“导入”。它们将出现在您的图书馆窗格中,通常位于屏幕的右侧(但可能位于其他地方,具体取决于您的布局。如果您遇到问题,请使用“窗口”菜单查找它。)

现在,转到插入 - >新符号...

为该符号命名。符号名称的最佳做法是仅使用字母数字字符和下划线(无空格或其他标点符号)。

现在,选择一个类型。我建议使用MovieClip。

别忘了其他一切,然后按“确定”。您的舞台将切换到仅编辑该MovieClip。

看看你的时间表。这个很重要。单击时间轴上的第一帧,然后将图像中所需的图像从库中拖动到舞台上。使用“自由变换”工具根据需要调整大小。

现在,单击刚刚放置的图像。转到“属性”窗格并将其位置设置为0左,0顶。

现在,在时间轴中,单击第二帧。重复上述步骤,将图像静音。请注意,第二张图像的大小与第一张图像完全相同。

将两个图像放在时间轴上后,在相应的帧中单击第一帧。转到“操作”选项卡(右键单击框架,然后单击“操作”)。

输入以下声明。

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”不执行框架上的任何代码,也不会在没有{{1}的情况下播放框架函数,而“AndPlay”会。

我希望这很有帮助。再次,抱歉推荐一种不同的方法,因为当人们对我这样做时,这是我的一个宠儿。但是,在大多数情况下,你会发现这种方法比隐藏和显示不同的项目更能做同样的事情。

答案 1 :(得分:0)

我不太确定,你的问题是什么,但试试这个。

  1. 创建一个按钮,放入舞台并在属性视图中命名为“btnAudio”
  2. 创建纹理1,放入舞台并在属性视图中命名为“img1”,使用名称为“img2”的纹理2执行相同操作
  3. 创建一个新图层,调用“actions”并编写此代码:

    //Listener added to your button.
    btnAudio.addEventListener(MouseEvent.CLICK, f_muted);
    
    //Init method to hide your textures.
    function f_init():void {
        img1.visible = false;//Texture 1
        img2.visible = false;//Texture 2
    }
    
    // function to switch your textures
    function f_muted(event:MouseEvent):void{
        trace("switch images");
        img1.visible = true;
    }
    
    f_init();//Hide Textures.
    
  4. 我希望这可以帮到你。