仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1174|回复: 8
打印 上一主题 下一主题

[学习教程] 来讲讲:Flash与Flex3分离进修心得体味-Flash actionscript

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 20:46:21 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
“swf”这是一个完整的影片档,无法被编辑。swf在发布时可以选择保护功能,如果没有选择,很容易被别人输入到他的原始档中使用。
poluoluo中心提醒:明天折腾了泰半天Flash与Flex3的共同,特总结一下心得体味.
明天折腾了泰半天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设置到LibraryPath后,对应的组建就能够作为一等公明在Flex中利用了。假如MC是绑定了类的,那末对应类承继UIComponent就能够了。

在googleDocs下了一个corelib包,不是蛮有用的(前段工夫还本人写trim,华侈工夫啊),E文看得累,以备今后检察
//图相用法
importcom.adobe.images.JPGEncoder;
publicfunctionsubmit():void{
varencoder:JPGEncoder=newJPGEncoder(80);
varbytes:ByteArray=encoder.encode(getBitmapData());
varrequest:URLRequest=newURLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data=bytes;
request.method=URLRequestMethod.POST;
//这个是关头,内容范例必需是上面文件流情势;
request.contentType=“application/octet-stream”;
varloader:URLLoader=newURLLoader();
loader.load(request);
}
//加密用法
importcom.adobe.crypto.SHA1;
trace(SHA1.hash(”132″));
//utils包对照繁锁,全都是静态办法
importcom.adobe.utils.ArrayUtil;
ArrayUtil.arrayContainsValue(arr,value);//arr是不是包括value
ArrayUtil.arraysAreEqual(arr1,arr2);//arr1,arr2是不是相称
ArrayUtil.copyArray(a);//深拷贝
ArrayUtil.removeValueFromArray(arr,value);//删除值value
importcom.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是不是巨细写敏感
importcom.adobe.utils.DateUtil;
DateUtil.compareDates(d1,d2);//对照,d1>d2前往-1,=前往0,<前往1
DateUtil.getAMPM(d);//前往AMorPM
….功效对照全,太多了,另有几个不晓得
importcom.adobe.utils.NumberFormatter;
NumberFormatter.addLeadingZero(5);//前往补0的数,如1酿成01
importcom.adobe.utils.IntUtil;
IntUtil.toHex(n,bigEndian);//16进制,bigEndian指定是后补0,仍是前补0
IntUtil.rol(n,m);//n右移m位(位运算)
IntUtil.ror(n,m);//左移
importcom.adobe.utils.DictionaryUtil;
DictionaryUtil.getKeys(d);//失掉键名
DictionaryUtil.getValues(d);//失掉值
importcom.adobe.utils.XMLUtil;
这个还不会用,今后渐渐摸,原本AS3的XML就很完美了
corelib包下载地点

Flash跨域挪用成绩
因为平安沙箱的限定,处于分歧域下的文件(swf,xml等)在默许形态下是不克不及互相挪用的.好比A域名下的flash不克不及会见B域名下的XML.除非B域名在根目次下的”crossdomain.xml”文档中包括A域名.但存在以下成绩:
1)不同意修改根目次
办理办法:在AS3同意crossdomain.xml不在根目次中,这时候就要用Security.loadPolicyFile(”http://www.ckuyun.com/sub/dir/pf.xml”);如许的办法来指定.固然只要crossdomain.xml地点目次是能够会见的.
2)不同意增加crossdomain.xml
办理办法:假如要被读取的是swf文件,只需在主函数中到场flash.system.Security.allDomain(”A”)便可.但假如是其他各式的文件,好比xml文档的话怎样办呢?能够把xml读取到B上的b.swf(b上到场flash.system.Security.allDomain(”A”)).然后在A的a.swf中加载b.swf,然后读取b.swf中的xml.相似于:
_mc=event.target.contentasSprite;
trace(_mc["var"]);


Loader与URLLoader的对照
AS3已中Loader与URLLoader是两个对照简单搅浑的类,特此辨别:
使用局限
Loader:swf,图片(jpg,png,gif)
URLLoader:文本文件(xml,php,jsp…)
利用办法
Loader:
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete);
privatefunctionloadComplete(event:Event)
{trace("done");addChild(loader);}
URLLoader:
xmlLoader.dataFormat=URLLoaderDataFormat.TEXT;
xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
privatefunctionxmlLoaded(event:Event)
{
try{myXML=XML(event.target.data);area.text=myXML;}
catch(e:TypeError){area.text="Loadfaild:
"+e.message;}
}

AS3-点阵化笔墨

下面是这两天做的一个小器材,它可以把输出的笔墨用点阵来形貌,并存这些信息存进一个数组傍边。然后用这个数组来从头天生“笔墨”,这些“笔墨”能够由恣意的Sprite构成,而且能够随便加上动画。
承蒙人人厚爱,把源文件放在这里供人人下载。为了便于未来扩大,我利用的是Observer计划形式,但愿不会把人人弄搅浑。
源文件下载


Javascript与Flash互动
在SwfObject办理Html与Flash之间传送参数成绩中已扼要先容了怎样利用SwfObject在页面中拔出Flash,怎样在初始时由JS向Flash传送参数,和运转时Flash怎样挪用JavaScript中函数。这里次要先容运转时JavaScript怎样相互传送参数,并把持Flash的播放。
源文件下载
实在JS能间接把持Flash的播放,次要经由过程以下办法完成:
Play()—————————————-播放动画
StopPlay()————————————中断动画
IsPlaying()———————————&ndash;动画是不是正在播放
GotoFrame(frame_number)—————-跳转到某帧
TotalFrames()——————————-猎取动画总帧数
CurrentFrame()——————————回传以后动画地点帧数-1
Rewind()————————————-使动画前往第一帧
SetZoomRect(left,top,right,buttom)——-缩小指定地区
Zoom(percent)——————————改动动画巨细
Pan(x_position,y_position,unit)————使动画在x,y偏向上平移
PercentLoaded()—————————-前往动画被载进的百分比
LoadMovie(level_number,path)———&ndash;加载动画
TGotoFrame(movie_clip,frame_number)-movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)——movie_clip跳转到指定标签
TCurrentFrame(movie_clip)—————回传movie_clip以后帧-1
TCurrentLabel(movie_clip)—————&ndash;回传movie_clip以后标签
TPlay(movie_clip)—————————播放movie_clip
TStopPlay(movie_clip)———————-中断movie_clip的播放
GetVariable(variable_name)—————&ndash;猎取变量
SetVariable(variable_name,value)———&ndash;变量赋值
TCallFrame(movie_clip,frame_number)—call指定帧上的action
TCallLabel(movie_clip,label)—————-call指定标签上的action
TGetProperty(movie_clip,property)——&ndash;猎取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性
Readtherestofthisentry
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-11 19:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表