1

在使用 Flash 8 多年后,我将在工作中转向 CS3。我知道我必须学习 AS 3.0,所以,有人对主要/最显着的变化有任何好的参考或总结吗?此外,闪存环境是否有任何提示/技巧?在 CS3 中花了几分钟后,我注意到你不能直接将 actionscript 附加到按钮,这对我来说是新的。还有其他类似的陷阱需要注意吗?

4

3 回答 3

4

大约 3 个月前,我进行了彻底的转变,以下是一些帮助我快速提升的事情:

1)在类文件中做所有事情

那里的许多 AS3 教程只处理粘贴在时间线上的代码(我无法忍受,因为现在你必须寻找你需要的导入),但对于快速的小东西来说很好。从长远来看,最好主要在类文件中工作。学习 Classes 的工作方式为我打开了一扇大门,这与我第一次在 AS2 中发现 Functions 时的感受/体验相同 :)

2) 将图形保存在库中并远离工作区

例如,您有一个刚刚导入库的 jpg、gif、png 文件。制作了一个movieClip并给它一个类名(MyButton)。现在下面的代码将为您将图形放入工作区:

var myButton:MovieClip = new MyButton();
    myButton.x = 6;
    myButton.y = 22;
    myButton.buttonMode = true;

addChild(myButton);    

3) 习惯 AS3 中的新按钮代码

这是我们所有新皈依者都必须痛苦地处理的事情,但现在它是小菜一碟:)

myButton.addEventListener(MouseEvent.MOUSE_UP, clickThis);

function clickThis(event:MouseEvent):void
        {
            navigateToURL(new URLRequest("form.html"), "_self");
            //navigateToURL(request, '_self');
        }

4) 确保在使用后移除事件监听器

我花了一点时间来解决这个问题……为什么要删除它们?哦,它们仍在后台运行,当我再次收听时,我会收到各种变异错误。

private function volDown(e:MouseEvent):void
    {
        masker.width = volControl.mouseX;
        userVolume = (masker.width / 100) * 1;
        volControl.addEventListener(MouseEvent.MOUSE_MOVE, volMove);
    }

private function volUp(e:MouseEvent):void
    {
        lastVolPoint = masker.width;
        setVolume(userVolume);
        e.updateAfterEvent();
        volControl.removeEventListener(MouseEvent.MOUSE_MOVE, volMove);
    }

5) 不要忘记传递事件

我不是一名程序员,这造成了如此多的悲痛,我很高兴我已经摆脱了这种分娩的痛苦:

myButton.addEventListener(MouseEvent.MOUSE_UP, clickThis);

由于 clickThis 函数是通过事件启动的,因此您必须将:传递event:MouseEvent给它,如下所示:

function clickThis(event:MouseEvent):void

因为下面的代码会抛出可怕的 AS3“未定义属性访问”错误,新的 AS3 人总是会遇到。

function clickThis():void

6) 阅读并在 StackOverflow 上发布问题......很多!

顺便说一句,我仍然是一个菜鸟,最初是一名设计师,然后是 AS2 开发人员,我仍然不知道为什么我们将 :void 放在函数名称后面。如果我们有相似的编码背景,我希望这一切都会有所帮助:)

于 2009-12-09T23:14:42.487 回答
2

获取 Actionscript 3 IDE。例如 Flash Builder、FlashDevlop 或 FDT。这将迫使你学习得非常快。

于 2009-12-10T00:33:29.693 回答
2

我建议您查看Adob​​e devnet 上的ActionScript 语言迁移页面。它提供了很多关于 ActionScript 3 的关键变化的文章。

要回答您对按钮操作的问题,这不再有效(并且已经使用 ActionScript 2 不是最好的方法)。AS3 要求代码集中在时间线上。因此,为了给按钮一些操作,您需要给它一个实例名称并为 CLICK 事件添加一个事件侦听器,如下所示:

function doSomething ( event:MouseEvent ):void
{
    trace( "test" );
}
myButton.addEventListener( MouseEvent.CLICK, doSomething );
于 2009-12-09T20:40:20.853 回答