一直想用flash remoting做点东西,一直没有机会。
现在好了,空间整成PHP之后。对AMFPHP试用了一下,很好很强大。
对flash来说比起xml和json,AMF优势太明显了。
一直想用flash remoting做点东西,一直没有机会。
现在好了,空间整成PHP之后。对AMFPHP试用了一下,很好很强大。
对flash来说比起xml和json,AMF优势太明显了。
flash datagrid组件的列表字号默认不是12号字,好像是10号字,显示中文很不好看.
以下利用继承CellRenderer类方法简单设置datagrid的字体,字号及颜色.
CellRenderer 类很好几种用法,flash帮助文档有详细说明.
(全文…)
当一个html页面用了锚记#去定位页面位置后,如果页面还包括FLASH,当用户已触发一次锚写后,再点击FLASH,会将该页的标题栏变成锚记的内容,IE6与IE7都有这个问题。
测试方法:随便找一个有FLASH的网页,在URL后加上一个#号,再点击FLASH,标题将变成#.
因制作一个需要在FLASH输入文本的提交功能的FLASH,在IE中没有问题,但在FF中无法输入中文。在网上也找不到相关资料,最后用FLASH发布HTML,而又可以输入中文,对比代码区别,发现是wmode属性的的问题。
火狐3.0中 <embed>里的wmode="transparent"
在火狐2.0中还得去了<object>里的<param name="wmode" value="transparent">
就可以了。有点郁闷~~~~~~
看来了火狐3.0比2.0更标准了。
利用flash的URLRequest向百度发送关健字,再利用正则表达式提取mp3结果列表.再对结果列表再次请求,获取mp3的真实地址.
下面是具体的类
package {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.net.URLVariables;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.xml.*;
import flash.events.IOErrorEvent;
public class Mp3Search extends MovieClip {
private var xmlTextField:TextField = new TextField();
//dansion.com dansion@163.com,;
private var loader:URLLoader;
private var sub:Number;
public var Mp3List:Array;
public function Mp3Search() {
Mp3List=new Array();
Mp3_search.trackAsMenu=true;
Mp3_search.addEventListener(MouseEvent.CLICK,search);
}
private function search(event:Event):void {
var variables:URLVariables=new URLVariables("f=ms&tn=baidump3&ct=134217728&lf=&rn=&lm=0");
variables.word=input.text;
var request:URLRequest = new URLRequest();
request.url="http://mp3.baidu.com/m";
request.data=variables;
loader = new URLLoader();
try {
loader.load(request);
} catch (error:SecurityError) {
trace("A SecurityError has occurred.");
}
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
loader.addEventListener(ProgressEvent.PROGRESS,loaderProgress);
trace("btn is donw: "+input.text);
}
private function loaderCompleteHandler(event:Event):void {
progress_txt.text="加载完成";
//var mp3Exp:RegExp=/http://([w-]+.)+[w-]+([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
//var mp3Exp:RegExp=/http://[^box][0-9]([w-]+.)+[w-]+([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
var mp3Exp:RegExp=/http://220.181.38.82([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
var mp3_array:Array=new Array();
mp3_array=loader.data.match(mp3Exp);
//trace(loader.data.match(mp3Exp));
/*for (var i=0; i<mp3_array.length; i++) {
//trace("输出: "+mp3_array[i]+" 结束");
var chineseExp:RegExp=/[u4e00-u9fa5]+/;
//trace(mp3_array[i].match(chineseExp));
Mp3Name.push(mp3_array[i].match(chineseExp));
}*/
trace("——————–");
formatURL(mp3_array);
}
private function formatURL(array:Array) {
for (var i=0; i<array.length; i++) {
SubLoad(array[i],i);
//sub=i;
}
}
private function SubLoad(url:String,num:Number) {
var chineseExp:RegExp=/[u4e00-u9fa5]+/;
//trace(mp3_array[i].match(chineseExp));
//trace(url);
//var mp3name:String=new String();
var mp3name:String=String(url.match(chineseExp));
var subrequest:URLRequest = new URLRequest();
subrequest.url=url;
60; var sub_loader:URLLoader;
sub_loader = new URLLoader();
try {
sub_loader.load(subrequest);
} catch (error:SecurityError) {
trace("A SecurityError has occurred.");
}
sub_loader.addEventListener(Event.COMPLETE,SubLoaderComplete);
//sub_loader.addEventListener(ProgressEvent.PROGRESS,loaderProgress);
function SubLoaderComplete() {
progress_txt.text="开始分析第"+mp3name+"搜索结果";
var SubMp3Exp:RegExp=/http://([w-]+.)+[w-]+([w- ./?%&=u4e00-u9fa5]*)?.mp3/g;
trace(mp3name+" :: "+sub_loader.data.match(SubMp3Exp)[0]);
}
}
private function loaderProgress(event:ProgressEvent):void {
progress_txt.text=String(event.bytesLoaded)+"/"+String(event.bytesTotal);
}
private function errorHandler(event:IOErrorEvent):void {
trace("IOErrorEvent 出错");
}
}
}
其中主要是两个正则表达式写法.
新建一个MC链接Mp3Search类,MC里有一个文本输入框(名:input),一个表示按扭的MC(Mp3_search),加载提示动态文本框(progress_txt).
转载请注明出处!
点这里下载
在老外一个博客中发现一个好东西.
利用flash调用文件选择对方框的功能,给合js,实现可以一次选择多个文件,并且可以定制文件类型.
绝对的好东西.
老外的博客地址:http://digitarald.de
上传组件演示地址:http://www.dansion.com/FancyUpload/FancyUpload.html
Flash在加上xhtml文档声明的html文件中用不着100%来设定高度.在IE中没有问题,在Firefox中就使100%高度无效.
一种做法是去除html文档最前面的文档声明。如果不去除xhtml的文档声明,加上一段CSS就可以解决问题。
html{
height:100%;
}
其实使用xhtml的DTD不但使CSS的设置会出现问题,而且会使用html下的JS在xhtml下也可能出现问题。
其中最常见是xhtml的滚动条的样式在body里设置也是无效,也得用html下设置。
利用escape () 转化中文的URL地址,但转成的结果并非是正确的结果。
查来查去,最后发现是AS3.0的escape()和AS2.0的escape()有着不同的功能。
AS3.0用escapeMultiByte ()的功用才和AS2.0一样。
利用ExternalInterface.call调用html里的js函数,参照了flash帮助文档里的做法.可以执行js的函数.但就是无法获取return的值.
网上一大堆教程也只是抄flash帮助文档的东西.也试了allowScriptAccess=always.结果无效,
最后让我去搜了N个flash网站,答案居然是只要给<object>加上一个id或是name就解决了.
哎…….无语了
注(IE7.0)
看了flash 10的新功能演示网络视频,兴奋啊!
在flash IDE里可以直接播放视频,还有3D的东西,还有可以类似AE的的动作制作方式,这个赞啊!原来那个按路径的动画可以丢了。还有就是专业动画中的骨骼系统。到时候正式版一出,说不定还有让人期待的功能。
总体感觉,flash越来越强大了,有了3D,骨骼,对于制作一些人物动物会变得更加简单方便。再加上AS的完善。真不知道微软的Silverlight如何把Flash打败。
有兴趣的朋友可以到youtube去搜一flash 10的视频。