【问题标题】:Resetting a media file in Flash CS5 Actionscript 3?在 Flash CS5 Actionscript 3 中重置媒体文件?
【发布时间】:2012-03-09 00:19:05
【问题描述】:

我有两个 Actionscript 文件与一个 .fla 文件链接。文件 Document.as 假设支持键盘控制和鼠标控制,而 Reset.as 假设控制卡片的重置(这是一个交互式生日卡片)。我已经在“Reset.as”文件中添加了这个,但是,当按下“reset”按钮时,什么也没有发生!没有图像移动,或任何东西!我在这里做错了吗?所有文件都被赋予了实例名称!

这里是“Reset.as”代码;

    package src
    {

import flash.events.*;
import flash.display.*;

    public class Reset extends MovieClip 
    {       

        public function Reset ()
    {

        mouse();
    }

    public function mouse()
    {
        reset.addEventListener(MouseEvent.CLICK, Reset1);
    }

    public function Reset1(e:MouseEvent) :void 

        {
            aldo.x = -176.80;
            aldo.y = 282;

            aldoo.x = -322.80;
            aldoo.y = 286;

            reset.x = -401.75;
            reset.y = 328.45;

            firework1.x = 100.75;
            firework1.y = 545.15;

            firework.x = 457.55;
            firework.y = 551;

            instruction.x = 437.25;
            instruction.y = 379;

            fade2.x = 132.15;
            fade2.y = 433.15
        }
    }
      }

      //and here's the 'Document.as' code;


   package src
   {
import flash.events.*;
import flash.display.*;

public class Document extends MovieClip
{
    var speed:int = 20;
    var fader:Number = 0.1

    public function Document ()
    {
        init();

    }

    public function init()
    {
        button1.addEventListener(MouseEvent.CLICK, onMouseClick);           
        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
    }

    public function onMouseClick(e:MouseEvent) :void
    {   
        //if cake is clicked, the y axis for instance "instruction", "firework1", "firework" changes                                        
        instruction.y = 500;
        firework1.y = 100;
        firework.y = 100;

        //if cake is clicked, the y axis for instance "fade2" changes                                   
        fade2.y = 240;      

    }

    public function onKeyDown(e:KeyboardEvent):void
    {
    //if the right key (arrow key) is pressed, 
    //the instances "aldo and "aldoo" move positively on the x axis by "5"
    //the instance "fade2" (which is "Press and hold the right key") also fades out
    //the longer the right arrow key is pressed
    if (e.keyCode == 39 && alpha > 0  )
        {
            aldo.x += speed;
            aldoo.x += speed;
            reset.x += speed;
            fade2.alpha -= fader;
        }

    //if the left key (arrow key) is pressed, 
    //the instances "aldo and "aldoo" move negatively on the x axis by "5"
        if (e.keyCode == 37 )
        {
            aldo.x -= speed;
            aldoo.x -= speed;
            reset.x -= speed;

        }



  }
  }
  }

【问题讨论】:

    标签: actionscript-3 flash-cs5


    【解决方案1】:

    我有两个 Actionscript 文件与一个 .fla 文件链接。文件 Document.as 假设支持键盘控制和鼠标控制,而 Reset.as 假设控制卡片的重置(这是一个交互式生日卡片)。我已经在“Reset.as”文件中添加了这个,但是,当按下“reset”按钮时,什么也没有发生!没有图像移动,或任何东西!我在这里做错了吗?所有文件都被赋予了实例名称!

    我没有使用过 FlashCS5,但我确信它与 CS4 相比没有太大变化。 你可能错过了几件事。 1) 您必须确保您的 Document 文件正确链接到您的 .fla 文件。 如果链接不正确,Flash IDE 会给你一个类似的消息。 "在类路径中找不到文档类的定义,所以导出时会在 SWF 文件中自动生成一个"

    Flash 项目需要知道在哪里可以找到您的 Document.as。 转到文件 > 发布设置 在 Flash 选项卡中,应该有一个区域显示“脚本:”,除此之外应该有一个“设置”按钮。点击设置按钮。 在以下弹出菜单中,您应该会看到一个名为“Source Path”的选项卡,此处添加了您的文档文件在计算机上的目录路径。

    2) 确保在 .fla 中命名了重置对象的实例。在代码中引用它的方法是确保将名称应用于作为显示树之一的实例。您可以在属性部分单击对象并对其进行重命名。

    如果这两件事都做好了,你就可以正确的将按钮点击事件注册到你的重置按钮了。

    【讨论】:

    • 是否可以链接一个 .fla 文件和两个 .as 文件?如果是这样,怎么做?我进入了你的设置,但它不允许我添加两个文档类
    • 抱歉离开了。 Stack Overflow 回答问题的新手。如果你还没有弄清楚。您只能拥有一个文档类。但是在文档类文件中。您可以导入 Reset 类,就像导入 flash.events.* 一样。您只能从文档类中引用 .fla 中的命名对象。(99% 确定)因此,如果您想在 Reset 类中使用 .fla 对象,您必须将它们作为函数或构造函数中的参数传递文档类。
    • 我喜欢 Flash,但它有一些棘手的问题。我对它最大的不满是异步线程模型,我觉得奇怪的是我还没有找到抱怨它的人。一旦加载任何资源,您就会失去对程序流程的跟踪。我把它留到另一天,Flash的未来看起来很严峻,我想没有必要让它磨我的齿轮。
    猜你喜欢
    • 2011-06-21
    • 2011-04-29
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多