今天折腾了大半天Flash与Flex3的配合,特总结一下心得体会: 1) 如果是通过Embed来嵌入swf的话,Flex3只支持FlashCS2所创建的swf. 2) 如果是通过loader来加载的话,只有AS3的swf才能在加载后被控制(这和第一点相反,我花了很长时间才弄明发现这两点,汗!) 3) 如果要直接加载到Flex当中,类必须继承UIComponent,这好比在Flash中必须继承DisplayObject 4) 如果要把Flash的组建打包给Flex使用,应该使用FlexComponentKit,把MC导出成swc。然后在Flex中把swc配置到Library Path后,对应的组建就可以作为一等公明在Flex中使用了。如果MC是绑定了类的,那么对应类继承UIComponent就可以了。
在googleDocs下了一个corelib包,不是蛮实用的(前段时间还自己写trim,浪费时间啊),E文看得累,以备以后查看 //图相用法 import com.adobe.images.JPGEncoder; public function submit():void { var encoder:JPGEncoder = new JPGEncoder(80); var bytes:ByteArray = encoder.encode(getBitmapData()); var request:URLRequest = new URLRequest(UPLOAD_PAGE); //data值就为图片编码数据ByteArray; request.data = bytes; request.method = URLRequestMethod.POST; //这个是关键,内容类型必须是下面文件流形式; request.contentType = “application/octet-stream”; var loader:URLLoader = new URLLoader(); loader.load(request); } //加密用法 import com.adobe.crypto.SHA1; trace(SHA1.hash(”132″));
//utils包比较繁锁,全都是静态方法 import com.adobe.utils.ArrayUtil; ArrayUtil.arrayContainsValue(arr, value);//arr是否包含value ArrayUtil.arraysAreEqual(arr1, arr2);//arr1,arr2是否相等 ArrayUtil.copyArray(a);//深拷贝 ArrayUtil.removeValueFromArray(arr, value);//删除值value
import com.adobe.utils.StringUtil; StringUtil.beginsWith(str1, str2);//str1是否以str2开头 StringUtil.endsWith(str1, str2);//str1是否以str2结束 StringUtil.ltrim(str);//去左空格 StringUtil.rtrim(); StringUtil.trim(); StringUtil.remove(str1, str2);//从str1删除str2 StringUtil.replace(input, replace, replaceWith);//把input中的replace置换为replaceWith StringUtil.stringsAreEqual(s1, s2, caseSensitive);//s1,s2是否相等,caseSensitive是否大小写敏感
import com.adobe.utils.DateUtil; DateUtil.compareDates(d1, d2);//比较,d1>d2返回-1,=返 |