AS3中的参数

时间:2010-02-08 18:24:28

标签: actionscript-3

AS3中大部分时间都有参数吗?我想要一个大部分时间都能运行的代码设置。有什么建议吗?

书籍将其分解,但没有表明程序员如何得出他们的结论。这可能会成为一个讨论问题,但如果有一个我想知道的秘密。

我之后是什么
- 一个参数结构 - 学习执行函数调用的过程
- 扩展变量超出我的“20行代码”
- 系统地管理变量,事件和功能

2个做同样事情但结构不同的例子“go figure”

//Example #1 "move the ball"
addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);

function onLoop(evt:Event):void{
ball1.x += 5; 
 }


    //Example #1 "move the ball" 
    function moveBall(e:Event):void {
    ball2.x += 5;
    }
    ball2.addEventListener(Event.ENTER_FRAME,moveBall);

if ... else参数“ball loop”

//growing collection of arguments
addEventListener(Event.ENTER_FRAME,myEnterFrame);
    function myEnterFrame(event:Event) {
    if (ball.x>800) {
    ball.x=-160;
    } else {
    ball.x+=5;
    }
    }

来自Adobe liveocs的不同方式“

EQUIVILANT BOOLEANS
var flag:Boolean = true;
var flag:Boolean = new Boolean(true);
var flag:Boolean = Boolean(true);

EQUIVILANT STRINGS
var str:String = new String("foo");
var str:String = "foo";
var str:String = String("foo");

COMMENT
像lambda演算这样的功能样式将是一个很好的例子“更多的数学减少语法和类结构”

活动聆听者
http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html

2 个答案:

答案 0 :(得分:0)

我建议您阅读Adobe网站上的事件处理程序。 http://www.adobe.com/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000139.html

从网站,这是addEventListener的函数定义:

function addEventListener(eventName:String, 
                        listener:Object,
                        useCapture:Boolean=false,
                        priority:Integer=0,
                        useWeakReference:Boolean=false):Boolean;

最后三个参数具有默认值(false,0,false),因此在调用函数时可以省略这些参数。始终需要前两个参数。

我认为通过学习AS3中的面向对象编程,可以最好地回答您的其余问题。以下是一个指南:http://www.adobe.com/devnet/actionscript/articles/oop_as3.html

答案 1 :(得分:0)

实际上,许多开发人员更喜欢将useWeakReference设置为true,这要求您将所有五个参数插入到事件侦听器中。原因在于,侦听器不会持有对阻止垃圾收集的目标的引用 - 这是一种内存管理技术。大多数非常好的AS3开发人员会告诉你总是使用所有五个参数,只是为了达到这一点。

另外,一般来说,最好在可以的时候使用文字。 “text”而不是new String(“text”),true而不是new Boolean(true)。复杂的原因,但有你的简短回答。

可以找到许多这些问题的答案here,这是一个试图标准化AS3编码约定的文档。值得一读!