南粤风采36选7开奖结果:AS教程:FlashDevelop进行AS3开发

//www.t5a2.cn/  2012-12-07 01:05:13  来源:Pilihou's Blog 

广东36选7怎么中 www.t5a2.cn

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()可以用来避免它),但我认为在时间轴中添加一点代码,这是完全可以的,因为它会使你的类更轻量。
例如,如果元件(或主时间轴)是一个多帧动画,并且你想知道什么时候已经到达了一个特定的?。?br />·添加“动作”层
·在时间轴上创建一个空白关键?。ɡ缱钚碌模?br />·在帧动作中写入:
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:在示例项目中,类是“打包的”。包是一个单元,是你聚集普通项目或普通角色中类的地方。

更多
  • 一图看懂丨拉林铁路藏木特大桥 2018-11-25
  • 这篇文章写得非常好,现在的人大多都是根据一些简单的事实来判断事情的对错,“一个很漂亮的开奥迪的女人”为了十八块钱与保安对峙 2018-09-24
  • 近九成券商股逆市上涨 防御+反弹攻守兼备 2018-09-18
  • 暑期兼职当心中介有“猫腻” 兼职市场亟须规范 2018-09-18
  • 推动重庆各项事业沿着习近平总书记指引的方向奋力前行——华龙网 2018-09-17
  • 唐僧玄奘的四种形象,哪一种形象更接近真实? 2018-09-10
  • 马航客机在乌坠毁现场尸体散落 俄救援人员现场救援 2018-09-06
  • 内蒙古全区安全生产情况新闻发布会召开 2018-09-06
  • 好战的北约应该负责打扫战场,包括难民安置、战后重建…… 2018-08-31
  • 【文艺时代】尹昉:星空下跳舞 2018-08-19
  • 南京“凶宅”别墅 拍出786万元高价 2018-08-15
  • 他凭一颗青菜登上《舌尖上的中国3》 蟹粉菜心里藏人生哲学 2018-08-08
  • 杭州电动车充电全城没有统一价 2018-08-08
  • 西南华南等地将有较强降水 东北华北有对流性天气 2018-08-03
  • 以青春之我肩负起国家民族的希望 2018-07-25
  • 612| 384| 751| 325| 393| 996| 50| 914| 222| 699|