学习ActionScipt的一些提示 학습을위한 도움말 actionscipt

英文原文:《Tips for learning ActionScript 3.0》 영어 텍스트 : "팁을 배우기위한 actionscript 3.0"
原文地址:http://www. adobe .com/devnet/actionscript/articles/actionscript_tips.html 기존 주소 : @. adobe합니다. com / devnet / actionscript / 기사 / actionscript_tips.html

译者:Dreamer。 역자 : 꿈꾸는합니다.

学习ActionScipt的一些提示 actionscipt 학습을위한 도움말

ActionScript 3.0是一种强大的面向对象语言,它为Flash Player描绘了一种新的编程模型。 actionscript 3.0은 강력한 개체 - 지향 언어, 플래시 플레이어를 그려 새로운 프로그래밍 모델을합니다. 如果你已经对ActionScript 1.0或2.0很熟悉,那么当你使用ActionScript 3.0开发你的第一个应用程序的时候需要知道一些语言差别。 actionscript 경우에는 1.0 또는 2.0은 매우 익숙한, 그래서 actionscript 3.0를 사용하는 경우 귀하의 첫 번째 애플 리케이션의 개발이 필요하면 일부 언어의 차이를 알고있습니다.

注:更多资料,请参考Flex 2.0 Language ReferenceActionScript 2.0 和ActionScript 3.0之间的不同点的列表。 참고 사항 : 자세한 정보를 참조하시기 바랍니다 플렉스 2.0 언어 참조 actionscript 2.0 및 actionscript 3.0 사이의 서로 다른 지점의 목록합니다.

为了帮助大家更容易地过渡到ActionScript 3.0,我编辑了下面的列表,其中包括技巧和你可能在开发中会遇到的普遍的问题。 마이 그 레이션을보다 쉽게하기 위해 다른 사람을 돕는 actionscript 3.0, 나는 아래 목록을 편집을 포함한 기술과가 나타날 수있습니다의 개발에 광범위한 문제가 발생합니다.

为所有变量,参数和返回值声明类型。모든 변수, 매개 변수 및 반환 값 유형의 성명. 为所有变量,参数和返回值声明类型不是必须的,但是它被认为是最好的习惯。 모든 변수, 매개 변수 및 반환 값 유형의 문장은 필요하지 않습니다,하지만 최고의 습관으로 간주합니다. 它将会帮助编译器给你更多地有用的错误信息。 컴파일러에게 도움이 될 수 오류 메시지가 당신을 더 유용합니다. 它还会增强运行时的性能,因为虚拟机将会认为你事先知道你所做的工作。 그것은 또한 실행 - 시간의 성능을 강화, 가상 머신을 잘 알고 있기 때문에 사전 작업을 완료하다고 생각합니다. 实际上,它是如此重要所以如果你没有声明我们会给出一个警告。 사실, 그것은 매우 중요하지 않을 경우 우리는 경고를 선언합니다.

注意现在没有访问方式的声明都默认是internal方式,而不是public。 •주의를 지불하지 않아도 문장의 기본 모드는 내부가 아닌 공개합니다. 现在默认的访问方式是internal而不是public,这就是说这个声明只对含有这个声明的包可见,而不是对所有代码都可见。 지금은 내부가 아닌 기본 액세스 권한이 국민, 그것은 유일하게 성명을 성명이 포함된이 패키지는 대신에 코드가 모두 볼 수 있도록합니다. 这一点和其它一些语言相一致,比如JAVA。 이 문제와 기타 언어로 라인, 같은 자바합니다. 因为ActionScript2.0的声明默认为是public,这个变化将很可能造成普遍的错误,所以请总是在声明前面加上访问方式,让你的意图更加清楚。 성명은 기본 actionscript2.0를 공개하기 때문에,이 변화의 원인은 포괄적인 실수들, 그 때문에, 항상 방문을 묵살하고는 성명서에서 귀하의 의도를보다 명확하게합니다. 为了鼓励这个好习惯,ActionScript 3.0编译器将在没有访问方式声明的时候给出一个警告。 좋은 습관을 장려하기 위해, actionscript 3.0 컴파일러를 액세스하는 시간을 진술이 부여되지 않습니다 경고합니다.

注意类都是默认为封装(sealed)的,也就是说不能在运行时动态地添加属性。 이 패키지의 기본 범주에 대한 관심이(봉인), 그 속에 존재하지 않는 동적 특성을 추가할를 실행합니다. 现在类可以是动态的(dynamic)或者封装的(sealed)。 지금의 유형은 동적 (동적) 패키지 또는 (봉인)합니다. 动态(dynamic)类可以在运行时添加动态属性;封装(sealed)类不行。 동적 (동적) 카테고리를 추가할 수있습니다 - 타임 동적 특성을 실행; 포장 (밀봉) 범주없습니다. 因为不需要内部哈希表来保存动态的属性,封装(sealed)类占用内存少,而且编译器可以对它提供更好的错误反馈。 때문에 해시 테이블의 내부를 유지하기 위해 필요로하지 않아 동적 특성, 포장 (밀봉) 범주 적은 메모리와 컴파일러를 차지할 수있습니다 더 나은 의견 오류를 제공합니다. Class Foo这种声明就是封装(sealed)的。 이 문장은 클래스 foo 패키지 (포장)를합니다. 要声明一个动态(dynamic)类,就使用dynamic关键字——比如,dynamic class Foo。 이 선언하는 동적 (동적) 범주를 사용하는 동적 키워드 - 예를 들어, 동적 클래스 foo합니다.

使用包(package)声明把一个类放到一个包(package)里面。 •의 사용을 패키지 (패키지) 성명을 범주로 패키지 (패키지) 내부합니다. Package是ActionScript 3.0中一个新的关键字。 패키지는 새로운 actionscript 3.0에서 키워드합니다.
ActionScript 2.0 代码: actionscript 2.0 코드 :

class mx.controls.Button { … } 클래스 mx.controls.button (…)
ActionScript 3.0 代码: actionscript 3.0 코드 :

package mx.controls { class Button { .. } } 패키지를 mx.controls (클래스 버튼을 (..))

在ActionScript 2.0中,一个public类必须放在一个文件名和类名相同的文件中。 이 actionscript 2.0, 공중에서 카테고리에 삽입되어야합니다 같은 문서 파일 이름과 유형을합니다. 多个类可能在同一个文件中声明,但是只有一个类可能是public,并且这个类的名字必须和文件名字相同。 동일한 범주에있는 문서에서 진술보다 더 필요할 수있습니다,하지만 하나의 범주에만 공개 수있습니다, 그리고이 유형의 이름이 문서의 이름이 동일해야합니다.

导入类,即使对这个类的引用都是完全合法的。수입 범주를 사용하는 경우에도 이러한 유형은 완전히 합법적인합니다. 要使用MyPackage.MyClass类,你必须导入它: mypackage.myclass 범주를 사용, 당신은 그것을 가져올 :

import MyPackage.MyClass; 수입 mypackage.myclass;

你必须这样做既是所有的引用都是完全合法的,并且要使用完整的名字MyPackage.MyClass。 당신은이를 위해 모두가 사용하는 합법적인 사업가, 그리고 우리는 전체 이름을 사용하여 mypackage.myclass합니다. 在ActionScript 3.0中,import语句表明你想要使用一个来自另外一个包中的类,而在ActionScript 2.0中,它只是用来帮助记忆类名。 이 actionscript 3.0에, 수입 제표에 따르면 중 하나를 사용하고자하는 다른 유형의 패키지를, 그리고 actionscript 2.0, 그것은 도움이 메모리를 사용하여 클래스 이름. 在ActionScript 3.0中,完整的类名只是用来消除歧义,而不再是import语句的替代品。 이 actionscript 3.0, 전체 클래스 이름이 사용됩니다 모호성을 제거하기보다는 문장의 수입 대체합니다.

也可以使用* 通配符来导入一个包中的所有类。 * 또한 모든 유형의 와일드 카드를 사용하는 패키지를 가져오기합니다.

import MyPackage.*; 수입 mypackage .*;

单个地导入类被认为是一个好习惯,因为这样更明确地表明了你的代码使用了哪一个类。 하나의 카테고리를 수입에 좋은 습관을 고려, 왜냐하면 그것은 더 명확하게 표시되는 코드를 사용하여 분류합니다.

始终标记方法的覆写。태그를 재정의하는 방법을 항상합니다. Override关键字可以帮助避免覆写方法时常见的错误,比如对一个被覆写得方法定义了错误的名字或者被覆写的方法的名字改变导致的错误。 재정의 키워드는 일반적인 오류에 도움을 피하는 방법을 덮어 쓰와 같은 점막의 정의를 서면의 이름을 잘못된 방법이나 재정의하는 방법은 엉뚱한 나라에서 이름을 변경합니다. 这样做会使包含有覆写方法的代码看起来更清晰。 이것은보다 명확하게 보인다의 코드를 덮어 쓰 방법을 포함합니다. 因为编译器能够知道一个方法是否试图覆写另外一个,它就能执行更好的检查。 의 여부를 한 방법을 알고 있기 때문에 컴파일러를 무시하고 또 다른, 그것은 더 나은 검사를 실시합니다. ActionScript 3.0中的override关键字是从C#的override关键字中获得的灵感。 actionscript 3.0에서 키워드를 무시 c # 재정의하는 키워드가 영감을합니다.

在函数中定义返回类型。기능을 반환 형식에 대한 정의를합니다. 为一个函数定义返回类型是一个好习惯。 위로 역할을 정의의 유형은 좋은 습관을합니다. 如果你忽略了返回类型,会出现一个警告。 을 무시하는 경우의 반환 유형이있을 것이다 경고합니다. 这是为了类型的安全性,这样一来你就不会无意中没有写返回类型而得到默认的Object返回类型。 이것은 종류의 보안,이 방법을 안에 기록되지 않은 실수로 돌아갑니다을 기본 유형 유형의 개체를 반환합니다. 如果一个函数没有返回任何值,将它的返回类型声明为void。 이 함수가 제공되지 않습니다 값,이 유형의 문장이 무효로 돌아갑니다.

注意,delegate现在被定义到了语言里,使得事件分派更简单。 •주의, 대리인에 의해 정의됩니다 이제는 언어, 더 간단한 사건을 배포합니다. 在ActionScript 2.0中,把事件指向到一个方法需要使用mx.utils.Delegate 类或者其他的工作: 이 actionscript 2.0, 포인팅이이 사건에 mx.utils.delegate 방법을 사용해야으로 또는 다른 범주의 작업 :

import mx.utils.Delegate; 수입 mx.utils.delegate;
myButton.addEventListener(”click”, Delegate.create(this, onClick)); mybutton.addeventlistener ( "을 클릭", delegate.create (이, onclick));

在ActionScript 3.0中,方法的一个引用会自动记住它引用的对象实例。 이 actionscript 3.0을 사용하는 방법의 예를 인용의 대상이 자동으로 기억하고있어. 这被称为method closure。 이것은 불리는 방법을 폐쇄합니다. 本质上来说,这就是一个自动的delegate。 본질적으로, 이것은 자동으로 위임합니다. 所以,代码可以简单地写成: 따라서,이 코드는 간단하게 기록되어있다 :

myButton.addEventListener(”click”, onClick); mybutton.addeventlistener ( "을 클릭", onclick);

现在解除一个null或者undefined的引用将会抛出一个异常。지금 리프트 널 또는 정의되지 않음 참조 예외가 걸려 아웃. 解除一个null或者undefine的引用在以前的ActionScript中会被忽略并且定义引用为undefined。 a 해제 이전에 널 또는 취소 인용 actionscript가 무시되고 정의되지 않음에 대한 정의에 사용합니다. 现在,一个TypeError异常会抛出。 지금은 이례적인 typeerror 퇴장된다. 提防无意中解除的null或undefined引用,并且依靠这个报告错误的特性。 널 또는 실수로 정의되지 않음에주의 문헌 해제, 그리고 오류에 대한 리포트를 의존합니다. 这种新的抛出异常的特性与ECMAScript定义相符合。 이례적인 특성을 밖으로이 새로운 오목한 E4X (ECMAScript의 정의와 일치합니다.

使用-verbose-stacktraces和-debug选项。사용 - 자세한 정보 - stacktraces 및 - 디버깅 옵션을합니다. 使用命令行选项-verbose-stacktraces和-debug编译可以使文件名和行号出现在Flash Player的警告框中。 명령 - 라인 옵션을 사용 - 자세한 정보 - stacktraces 및 - 디버그 컴파일러를 할 수있어 파일 이름과 행 번호의 플래시 플레이어의 경고 상자합니다. 当一个运行时错误发生时,一个对话框会描述这个错误并且列出它发生错误的地方的调用堆栈。 - 런타임 오류를 실행하면, 대화 상자가 선물을 설명하는 오류와 잘못된 장소에 그것 호출 스택합니다. 使用-verbose-stacktraces和-debug选项可以让在源代码中定位错误变得简单。 사용 - 자세한 정보 - stacktraces 및 - 포지셔닝의 소스 코드를 디버깅 옵션을 통해 오류를 간단합니다.

显式声明bindable属性。바인딩 속성을 명시적으로 진술합니다. 属性不再默认为bindable。 기본 설정은 더 이상 특성을 결합합니다. 你必须使用[Bindable]元数据标签来声明它们为bindable。 하여 사용해야합니다 [바인딩] 레이블을 그들의 성명에 대한 메타 데이터를 결합합니다.

注意Flash Player API被重新组织到了包里。 •주의를 플래시 플레이어 API를가 다시 - 조직 자루합니다. 以前Flash Player API中所有的类和函数都是全局的。 API를하기 전에 플래시 플레이어의 모든 카테고리와 함수가의 전체 상황을합니다. 现在有了许多包,象flash.display, flash.events, flash.ui以及其它。 지금, 많은 패키지로 flash.display, flash.events, flash.ui 및 기타합니다. 举个例子,MovieClip现在是flash.display.MovieClip并且getTimer 和setInterval都被放进了flash.utils 包中。 예를 들어, 이제 movieclip setInterval * flash.display.movieclip 및 gettimer 및 flash.utils 패키지에 넣어도합니다.

使用新的Timer类,而不是setInterval/setTimeout。새로운 타이머를 사용 범주,보다 setInterval * / setTimeout () 함수합니다. 与setInterval/setTimeout函数相比,新的Timer类为timer事件提供了更清晰的机制。 그리고 setInterval * / setTimeout () 함수 기능을 비교하여 타이머 타이머 이벤트를 제공하기위한 새 범주 메커니즘이 분명합니다. 新的Timer类与setInterval方法相比有很多优势,比如不需要处理ID数字间隔,还有一个更好的,面向对象的接口。 분류 타이머에 비해 신규 setInterval * 방법은 많은 장점과 같은 번호 간격으로 다룰 필요가없습니다에는 더 나은, 개체 - 지향 인터페이스를합니다. 我们把使用Timer而不是使用setInterval和setTimeout看作是一个好习惯。 타이머가 아닌 우리와 setTimeout () 함수를 사용 setInterval * 좋은 습관으로 사용합니다.

确认事件(event)是继承而来的확인이 사건 (이벤트)를 상속합니다. 现在事件(event)是强类型的,并且必须是新的Event基类的子类。 현재 이벤트 (이벤트)이 유형의 강력하고 새로운 이벤트와이어야합니다 - 종류의 서브 - 클래스합니다. 新的Event类让事件体系更加清晰和有效。 이벤트의 새로운 분류 시스템 이벤트를 더 명확하고 효과적으로합니다. 但是,这也意味着当分派事件的时候你不能再使用Object类的通用实例了,并且你不能使用对象的文字简写——例如,{type: ‘customEvent’ }。 그러나,이 또한 수있을 때 의미가의 경우 할당된 개체를 예제를 사용하여 더 이상의 종류를 일반적인, 그리고 약자 개체의 텍스트를 사용할 수없습니다 - 예를 들면, (타입 : 'customevent').

你现在需要使用Event类(例如,dispatchEvent(new Event (’myCustomEventType’))),而不是创建一个通用的Object类。 이 이벤트 범주를 사용해야합니다 (예를 들어, dispatchevent (새로운 이벤트 ( 'mycustomeventtype '))),보다는 일반적인 개체를 만듭니다 분류합니다. 如果你想要传递附加的属性就需要从Event继承。 추가로 전달하려는 경우에이 이벤트의 요구에 등록 정보를 상속합니다. 不使用Object的动机是为了获得更高的类型安全性和效率。 개체를 안의 유형을 사용하는 동기가 더 높은 보안 및 효율성을합니다.

注意可视的元素必须继承自DisplayObject,并且你可以像其它类一样定义它们。시각적인 요소에 대한 관심을 displayobject에서 상속되어야합니다, 그리고이 될 수있다는 그들을 동일한 범주로 다른 정의합니다. 组件现在通过new动态创建并且使用addChild被添加到显示列表中。 이제 새로운 동적 구성 요소를 만들고 사용을 통해 addchild 표시 목록에 추가됩니다. 所以,不鼓励使用createChild。 따라서,하지 createchild의 사용을 권장합니다. 可视化的实体,包括TextField,可以像其它对象一样实例化并且使用addChild或addChildAt简单地添加到显示列表中。 시각화의 엔티티를 포함하여 텍스트, 될 수있는 다른 예제와 동일하거나 addchild 개체 및 addchildat의 사용을 간단하게 표시 목록에 추가됩니다. 注意,这意味着一些API消失了,比如createEmptyMovieClip 和createTextField。 참고 : 이것은 일부 API를 사라는 등의 createemptymovieclip 및 createtextfield합니다. 你可以使用new TextField而不是使用createTextField来创建一个新的TextField。 새로운 텍스트를 사용할 수있습니다을 새로 만들려면 텍스트가 아닌 createtextfield합니다.

现在在Flash中推荐使用E4X (ECMAScript for XML)来操作XML。지금 플래시 추천 e4x (E4X (ECMAScript에 대한 xml)을 운영 xml합니다. E4X与以前的Flash XML类相比非常强大并且更好地整合进了语言中,它还提供了很多新的性能。 e4x 플래시 xml과 범주에 비해 매우 강력하고 더 나은 전에 통합된 언어, 그것의 새로운 등록 정보를 많이 제공합니다. 以前的Flash XML类依然可以使用。 플래시 xml 원래 범주 계속 사용할 수있습니다. 如果你喜欢用以前的XML API,它就在flash.xml包中。 원하신다면 이전 xml을 사용하는 것이든, 그것의 flash.xml 패키지를합니다. 它依然可用只是重新命名成了XMLDocument。 이 유적의 이름을 바꾸려면에만 사용할 수있습니다 XML 저장합니다.

当使用E4X的时候使用toXMLString方法。 사용하는 방법을 사용하면 e4xtoxmlstring합니다. toString方法没有为对象返回完整的XML标记;如果你想获得,使用toXMLString方法。 toString (방법이 반대하지 않는 태그를 반환하려는 경우를 전체 액세스, toxmlstring 방법을 사용합니다. toString方法为XML对象返回一个简单的字符串。 toString (xml 개체가로 복귀할 수있는 방법은 간단한 문자열을합니다. 它并不会完全将XML对象序列化。 xml 개체를 완전하게 순서를하지 않습니다. 要获得XML标记,请调用toXMLString方法。 태그를, 전화 toxmlstring 방법을합니다.

For……in循环将不再枚举类中声明的属性或者方法。 ……유통에 열거되지 않습니다 재산의 일부를 입력하거나 메서드를 선언합니다. 它只枚举一个对象的动态属性。 그것은 겨우 한의 동적 특성을 열거의 대상. ActionScript 3.0特性中有一个针对对象自省的新的先进机制,叫做describeType。 - 심사의 대상 자체의 특성 actionscript 3.0의 새로운 고급 메커니즘을 describetype이라고합니다. 在ActionScript 3.0中使用它来自省对象。 actionscript 3.0에서 해당 개체의 사용도합니다.

现在一个SWF文件的根对象可以是你自主选择的一个自定义类的实例。지금은 루트 개체 swf 파일은 사용자 정의 범주의 사례를 선택하실 수있습니다 독립적으로합니다. ActionScript 2.0中,一个SWF文件的根对象总是MovieClip的实例。 actionscript 2.0, swf 파일을 movieclip 항상 루트에있는 경우를 대상으로합니다. 而在ActionScript 3.0中,它可以使Sprite的任意子类。 이 actionscript 3.0, 하위 - 범주에 어떠한 정령 수있습니다. 你可以设定一个类作为一个SWF文件的DocumentRoot。 클래스로 설정할 수있습니다 swf 파일에서 DocumentRoot합니다. 当其加载时,SWF文件会将它实例化然后将其作为自己的根对象。 를 로드할 때, swf 예제의 문서의 루트에서 그러면 그들의 목표로 사용될합니다.

特别感谢我们的开发团体为这篇文章提出建议。 특수 덕분에이 기사에 대한 우리의 개발 그룹을 권장합니다. 这里列出的决不是详尽的,但是它是一个起点,可以帮助你打好学习ActionScript 3.0的基础。 여기에 나열되지 않습니다 철저한 있지만이 시작 포인트, 레이아웃을 도울 수 actionscript 3.0 좋은 기초를 학습합니다. 如果你熟悉其它的面向对象的语言,你可能发现这些提示只是一个复习——复习你已经在别处学习到的并且可以立即在ActionScript 3.0中使用的技巧。 에 익숙한 경우에는 다른 개체 - 지향 언어로 보려는 경우 아래와 같은 방법은 찾을 수있습니다 검토 중 - 문학을 직접 실행하고 다른 곳에서 배워야만합니다 actionscript 3.0의 기술의 사용합니다.

如果你对ActionScript 3.0和面向对象编程是一个新手,那么这些提示将会派得上用场。 actionscript 3.0 및 개체 - 지향 프로그래밍하는 경우는 초급, 그럼 아래와 같은 방법은 쓸모없는 보낸합니다. 对你来说,这就是一个简单的可以帮你巩固知识的列表。 당신을 위해 통합 이것은 단순한 지식의 목록을 도울 수있습니다. 编码愉快! 코딩 행복하게!



本文链接: http://www.zhuoqun.net/html/y2006/189.html 转载请注明出处,谢谢。 링크를 : http://www.zhuoqun.net/html/y2006/189.html 재판 참조하시기 바랍니다, 감사합니다.

TrackBack引用地址: http://www.zhuoqun.net/html/y2006/189.html/trackback 사용 트랙백 주소 : http://www.zhuoqun.net/html/y2006/189.html/trackback

相关日志 관련 로그


Posted in Flex , 技术 . 에 게시된 플렉스, 기술합니다.

没有评论 코멘트 없음

    (Required) (필수)
    (Required, will not be published) (필요 간행하지 않을 것이다)
    关闭 닫기
    의해 제공됩니다 sharethis