上代码:

 
  
  1. private static function start():void
  2.    var jpeg3Encoder:JPEG3Encoder = new JPEG3Encoder(); 
  3.    var bitmapData:ByteArray = jpeg3Encoder.encode(_bitmap); 
  4.    var bitmapAlphaData:ByteArray = jpeg3Encoder.bitmapAlphaBytes; 
  5.    bitmapAlphaData.compress(); 
  6.     
  7.    //修改图片 
  8.    var jpg:TagDefineBitsJPEG3 = getPngTag();//new TagDefineBitsJPEG3(); 
  9.    jpg.bitmapAlphaData = bitmapAlphaData; 
  10.    jpg.bitmapData = bitmapData; 
  11.     
  12.    //修改文本内容 
  13.    var txt:TagDefineEditText = getTextTag(); 
  14.    txt.initialText = _desc; 
  15.    txt.html = false
  16.     
  17.     
  18.    //写入SWF 
  19.    var ba:SWFData = new SWFData(); 
  20.    defaultSwf.publish(ba); 
  21.     
  22.    var swfStream:FileStream = new FileStream(); 
  23.    swfStream.open(new File(_fileName), FileMode.WRITE); 
  24.    swfStream.writeBytes(ba); 
  25.    swfStream.close(); 
  26.     
  27.    //回调 
  28.    if(_callBack != null ) _callBack.call(); 
  29.   } 
  30.   
  31. private static function getTextTag():TagDefineEditText{ 
  32.    for(var i:int=0;i<defaultSwf.tags.length;i++){ 
  33.     if(defaultSwf.tags[i] is TagDefineEditText){ 
  34.      return defaultSwf.tags[i] as TagDefineEditText; 
  35.     } 
  36.    } 
  37.    return null
  38.   } 
  39.    
  40.   private static function getPngTag():TagDefineBitsJPEG3{ 
  41.    for(var i:int=0;i<defaultSwf.tags.length;i++){ 
  42.     if(defaultSwf.tags[i] is TagDefineBitsJPEG3){ 
  43.      return defaultSwf.tags[i] as TagDefineBitsJPEG3; 
  44.     } 
  45.    } 
  46.    return null
  47.   } 

在用AIR生成SWF过程中测试过很多种方法,都不能满足要求,最后想到的办法就是用一个模块,里面放罢了一个图形,连接名为bmp  再放一个text 属性名为txt 然后通过SWFData将SWF中的内容读出来,再对里面的tag进入修改,最后保存以达到了我的要求

 

要用到的资源包就是SWFDATA