AS教程:FlashDevelop进行AS3开发

http://www.ndnha2bn.com/  2012-12-07 01:05:13  来历:Pilihou's Blog 

Webjx中心提示:运用Flash Professional和FlashDevelop进行AS3开发。

创立FlashDevelop项目:
·在FlashDevelop中创立AS3 Flash IDE项目。
·请注意,你能够在现有的FLA文件邻近创立这个项目,它不会增加任何文件(而且FlashDevelop永久不会删去现有的文件)。
安排项目
·主张将源代码和发布元素别离开来
·所以在项目中创立两个文件夹:“bin”(或“deploy”)和“src”(即源代码)。
·翻开项目特点
·挑选Classpaths标签
·在classpath中增加“src”文件夹途径(经过点击来)
坚持类和FLA文件在“src”文件夹中,发布的SWF在“bin”(或”deploy”)文件夹中。
提示:为Adobe Flash Professional “fl”类启用代码完结功用:
·翻开项目特点
·挑选Compiler Options标签
·在Intrinsic Libraries列表中增加Library\AS3\frameworks\FlashIDE
创立Adobe Flash Professional文档(既“FLA”文档)
·发动Adobe Flash Professional(能够在FlashDevelop中按F6来发动)
·新建一个AS3 Flash文档
·在项目的“src”文件夹中保存FLA
·翻开发布设置(格式化标签)并把发布方针改为“../bin/xxx.swf”(xxx对应于你的FLA的文件名)那么它将会在适宜的目录中生成。
装备FLA
·在Adobe Flash Professional中翻开FLA文档
·翻开文档的ActionScript设置
·撤销挑选“主动声明舞台实例”
咱们改动的这些设置是非常重要的:
假如咱们要为舞台上的元素完结代码这些是有必要的。这意味着咱们要在咱们的类中手动声明舞台上的元素。请注意,你有必要声明一切的元素都有一个实例称号。
界说文档类和符号类
文档类:
·文档类是与主时间轴相相关的类(既主类)
·在ActionScript设置或特点面板(点击Flash舞台布景来得到文档特点)中界说文档类(例如:“SampleProjectMain”)
细心地挑选称号来创立一些库元件
·主张的做法是命名元件与他们的类相同(如:MySymbol)
·假如一个元件包括其他元件,这些子元件名应是其父元件类名的组合(如:MySymbol_background)这让人更简略了解元件之间的联络。
提示:元件和类之间的差异
从技术上讲,在AS3中的每个元件都主动有一个相关的类(从来没有直接操作元件),但默许情况下,这些类具有古怪的姓名,因而,咱们有必要给它们一个固定的类名,使得它们能够导入到咱们的代码中。
为ActionScript导出元件:
·在库面板中右击元件,挑选“特点…”对话框
·选中“为ActionScript导出”并填入类名(如:MySymbol)
·不改动基类(如:flash.display.MovieClip)
提示:Flash告之类不存在
当你相关文档或元件到一个不存在的类时,Flash将正告类不存在,它将主动生成一个默许类。这不是问题,你能够随时随地创立一个相同称号的自界说类。
编写类
现在是时分回到FlashDevelop上来并创立相应的类:
·在项目的目录树中挑选你要创立类的方位
·然后右键:Add>New Class…
·键入类名(不必输入包,它会在生成的类中主动增加)
提示:@author DefaultUser是什么?
初次创立一个类你可能在类注释中看到这个:

/**
* ...
* @author DefaultUser (Tools -> Custom Arguments...)
*/

Custom Arguments是你能够在FlashDevelop中设置并在模板中运用的应用程序变量:
·在主菜单中,挑选Tools>Custom Arguments
·把DefaultUser的值替换为你的姓名
PS:测验总是在这第一个注释块中增加一个一般类“人物”的描绘(在上面“…”的当地增加)
比方说,咱们现已把元件导出为MySymbol类了:

package
{
  import flash.display.MovieClip;
  public class MySymbol extends MovieClip
  {
    public function MySymbol()
    {
      trace("I'm a MySymbol instance called", name);
    }
  }
}

提示:关于文档类和元件类:
·类有必要声明为public
·一般你的类将扩展flash.display.MovieClip
·但你能够挑选扩展flash.display.Sprite(元件的时间轴将被禁用)
·或扩展其它恣意的至少扩展了flash.display.Sprite的用户类
PS:当然,这并不适用于图画,它最终有必要扩展flash.display.BitmapData
在舞台上声明元件
正如前面主张的,假如你在FLA的ActionScript设置撤销挑选“主动声明舞台实例”的话,不管哪一帧显现此元件,咱们都有必要明确地在父容器类中声明这个元件(假如它有一个自界说类的话)。
例如,在主时间轴上放置一个MySymbol实例,命名它为“mySymbol”。咱们有必要在文档类中声明它:

package
{
  import flash.display.MovieClip;
 
  public class SampleProjectMain extends MovieClip
  {
    public var mySymbol:MovieClip; // 动态类型
    //public var mySymbol:MySymbol; // 强类型
 
    public function SampleProjectMain()
    {
      trace("I'm the document");
      if (mySymbol) mySymbol.x += 100;
    }
  }
}

提示:关于元件可见性
元件有必要声明为public,这是在时间轴上强制元件实例。期间任何其它声明(internal,protected,private)都将失利。
增加“时间轴代码”
尽管有些人以为这是一种欠好的做法(addFrameScript()能够用来防止它),但我以为在时间轴中增加一点代码,这是完全能够的,由于它会使你的类更轻量。
例如,假如元件(或主时间轴)是一个多帧动画,而且你想知道什么时分现已抵达了一个特定的帧:
·增加“动作”层
·在时间轴上创立一个空白关键帧(例如最新的)
·在帧动作中写入:
lastFrame();
·现在在元件类(或文档类,假如你在主时间轴上的话)声明lastFrame()办法:

package
{
  import flash.display.MovieClip;
 
  public class SampleProjectMain extends MovieClip
  {
    public var mySymbol:MovieClip; // 动态类型
    //public var mySymbol:MySymbol; // 强类型
 
    public function SampleProjectMain()
    {
     trace("I'm the document");
    }
 
    public function lastFrame():void
    {
      trace("we reached the last frame");
      if (mySymbol) mySymbol.x += 100;
    }
  }
}

提示:AS3不像AS1/AS2相同宽恕
要注意常常查看你操作的元件不为空:

//是AS3, 假如mySymbol未界说
mySymbol.x += 100; // 抛出反常
if (mySymbol) mySymbol.x += 100; //正确

下载示例项目
本教程可作为一个FlashDevelop项目示例
·
PS:在示例项目中,类是“打包的”。包是一个单元,是你集合一般项目或一般人物中类的当地。

更多