ddc
联网
平面设计 画册 VI欣赏 包装 CG-插画 搜索 个人网页 Alexa排名 CSS 建站资源 下载专区 JS特效 品牌服装 服装院校 专题欣赏 SEO 图标欣赏 专题
上海网站建设 网站建设 域名注册 虚拟主机 广州网站设计 域名注册 广州网站建设 上海网站建设 虚拟主机 广州网页设计 虚拟主机 域名注册 acg ACG玩家 品牌设计
求创科技
网站建设
中国互联
投稿
素材出售
中国设计秀
中资源
当前位置:网络学院首页 >> 设计教程 >> Flash >> 有关Flash ActionScript 3编程的总结

有关Flash ActionScript 3编程的总结

来源:中国设计秀    作者:    点击:84     加入收藏    发表评论
0
顶一下
 最近用Flash AS3写一些项目,在编程过程中遇到不少问题,同时也有一些收获和心得,现在总结和大家分享,希望对大家有一些帮助。如果你发现有说得不对的地方,请在文章下面留言,大家一起来讨论。

  1、AS3的强制类型转换

  我之前一直以为是没有这个功能的,而最近在看一些文档,发现这个功能是有的。目前总结下来有两种写法:

  var loader:URLLoader = URLLoader(event.target);
  不知道这种写法是借鉴那种编程语言,反正我没有见过。
  补充这个语法说明:http://livedocs.adobe.com/flash/8_cn/main/00001211.html

  var loader:URLLoader = event.target as URLLoader;
  这种写法是借鉴VB.Net编程语言,唉!AS3语法真得一个大杂烩。

      2、URLStream和URLLoader

      URLStream在文本文件数据方面可以支持多种字符编码。
      URLLoader在进过测试后,发现除UTF-8字符编码外,其他字符编码读过来的数据都是乱码。

      可通过ByteArray对象字符编码转换(感谢abc12hjc提供补充代码):

      

    public class MoxieAS extends Sprite
    {
        public function MoxieAS ()
        {
            var stream:URLStream = new URLStream;
           
            stream.addEventListener(Event.COMPLETE, complete);
            stream.load(new URLRequest("ttt.xml"));  //  <root><a /><b /><c /></root>
        }
       
        private function complete (event:Event):void
        {
            var stream:URLStream = event.target as URLStream;
            var xml:XML = XML(stream.readUTFBytes(stream.bytesAvailable));
           
            trace(xml.*.length());  //  output 3
        }
    }

      具体用那个方式就看实际功能需求了。

       3、URLRequest

      URLStream、URLLoader、Loader等读取外部数据的类,里的load方法参数值是URLRequest对象。我在编程过程总是喜欢直接写地址字符串,原来习惯改过来看样子要花点时间了。

      4、Loader

      在使用Loader来加载数据时,添加侦听事件时,注意一定要给Loader的 contentLoaderInfo属性增加事件,而不是给Loader对象增加事件。我就是因为加错对象(关键是编译时还没有报错),郁闷得差点要把电脑给扔了。

      错误写法:
     var loader:Loader = new Loader(); 
     loader.addEventListener(Event.COMPLETE, completeHandler);
     loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
     loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

      正确写法:
     var loader:Loader = new Loader();
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
     loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
     loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

      5、Loader加载过来的数据类型

      大家知道Loader是用来代替原来 MovieClip的loadMovie功能,用于加载外部的图片文件,SWF文件。

    • 如果加载图片文件(jpg,gif,png等)时,Loader.content得到数据类型是Bitmap对象;
    • 如果加载SWF文件(flash 9 版本)时,Loader.content得到数据类型是MovieClip对象;
    • 如果加载SWF文件(flash 9 以前版本) 时, Loader.content得到数据类型是AVM1Movie对象;

      6、stage

      在调试flash过程发现,如果把swf文件放到html页面后,stage.stageWidth和stage.stageHeight在第一次加载调用时,他们的值为空值;

      7、 AVM1Movie

      如果是AVM1Movie 对象时,就不能直接调用stop,play,gotoAndStop等原来MovieClip对象的功能了,而且不能将AVM1Movie 对象转换成MovieClip对象。目前解决办法:一种是用flash cs3 重新生成 flash 9的swf文件;另一种是国外网站有说能AVM1和AVM2两个虚拟机相互调用的方式(贴一个地址);

      8、mask

      在使用遮罩功能,发现一个问题,如果不把用于遮罩的显示元件通过addChild方法添加到同一级的显示容器里的话,遮罩效果就显示不正常,不知道这个是不是一个bug。我差点因为这个问题而放弃AS3改用AS2了

    2007-06-21 10:03:00    出处:blueidea
    Google
    热点文章/相关文章

    音乐
    嫁衣 画心 放生 天亮了 牡丹江 那滋味 擦肩而过 怀念过去 北京欢迎你 突然好想你 吻的太逼真 说好的幸福呢 坐上火车去拉萨 没有人比我更爱你
    愚爱 心碎 稻香 带我走 醉赤壁 魔杰座 我还想她 明天过后 一定要爱你 等爱的玫瑰 原谅我一次 越单纯越幸福 最后一次的温柔 给我一首歌的时间
    白狐 光荣 降临 下雨天 小酒窝 樱花草 恋爱新手 说唱脸谱 红色高跟鞋 寂寞才说爱 深深爱过你 爱上你是个错 即使知道要见面 不是因为寂寞才想你
    城府 假如 花海 兰亭序 棉花糖 舍不得 最后一次 女人如烟 外滩十八号 我们的纪念 我们的无奈 心在跳情在烧 爱上你是我的错 爱情里没有谁对谁错
    网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明 | 网站公告 | 友情链接 | 留言 | 旧版入口