as3★flashas3小tips整理 flash as3.0教程

还在整理中。。。大概要断断续续花几天
1月25日更新

都是以前做flash时记的些小tips,毕竟是从菜菜菜鸟时期就开始偶尔记点东西,有些内容可能你会觉得很小白,可能这些东西你我都知道,但我的目的就是让有需要的人可以搜索到这里

因为记的东西时间比较早,有些代码可能只在老版本里用了,都忘了,对不对不保证。反正,就随便看看。。若有错请指出,大部分内容是我自己写的,有些是从网上记的

这些tips对应flash CS3或CS4或CS5的as3 ,如果是as2的 会特别标注的

as3基础的小tips

array[array.length] = ** 可代替push

下面的,好像是储存到本机的格式
shareobject.data["分数"] = 90
shareobject.data.分数 = 90

xml.aa.(@bb = "rr").@cc
筛选符合条件的XML节点,然后读取它的cc属性

startDrag与enterframe会冲突,mousemove也与enterframe会冲突

flash放网页上若提示版本过高:
解决:1.导出时降低版本
2.插入网页用"英文.swf" swf名字是英文字母

帧频和timer都不精确,要用gettimer或data获取系统时间

数组要保存同一类型,用数组原标签
[ArrayElementType("String")]
public var arrayofstring:Array

trace(变量),指时间轴的变量

trace(this.变量),指调用trace的对象的内部变量

不用var定义的函数仍指时间轴变量

12FPS的swf加载24FPS的swf,被加载的swf仍以12FPS运行

flash文本无法显示中文:

1.usecode = true

2.外部文本编码选uncoide

3.文本框“嵌入”把要的中文导入即可

类里面接受fla内变量:

如fla内定义_globel.aa = 1

类内可用classaa = _globel.aa来接收

若mc下有sonmc,直接写tween = (sonmc,"x",……),不用写成mc.sonmc

如果是addchild(xx),对应setindex(xx,getchildindex -1),addchild是加在maintimeline上。如果是stage.addchild才是加在stage上

(parent asmovieclip).gotoandplay(2)或movieclip(parent).gotoandplay(2)这种格式,调用父级时间轴

因为parent层级比mc高,所以可将parent当mc,但mc不能当parent

e.currenttarget是发送者对象,就是被点击到的对象,无论有无被监听

e.target是目标对象,就是mc.addeventlistener的mc

控制外部加载的swf文件:

var ldr:loader

ldr.contentloaderinfo.addeventlistener(complete,oncomplete)(伪代码,监听ldr.contentloaderinfo加载完成事件)

function oncomplete(e){

var mc:movieclip = ldr.content as movieclip

mc.gotoandplay(2)

}

在as3中,child.swf即便被加载到main.swf中,child.swf中的root依旧指向child.swf,这和as2不一样

flash cs4中,alpha遮罩效果里,2个对象一定要勾选“缓存为位图”

有x个元件,每行排n个,不用双for循环的排列小技巧:(你可能知道,但我还是写上来)

for(var i = 0;i

var mc:movieclip = new movieclip();

mc.x = 起始点.x + 元件x轴向间距 * (i % n);

mc.y = 起始点.y + 元件y轴向间距 * int(i / n);

addchild(mc);

}

A.swf外部加载B.swf,并把A.swf的东西传入B.swf中:

A.swf的loader.contentloadinfocomplete事件中function(e){

obj = e.target.content;

}

在B.swf中的第一帧(必须在第一帧)定义一个方法

function getmain(x:object){

xmlB = x.xmlA;

arrayB = x.arrayA;

}

在A.swf中,obj.getmain(this);这样调用即可

获取外部传入的位图:

var bitmapdata:bitmapdata =bitmap(bmploader.content).bitmapdata;

array.length

xml.children().length()

注意这两个的length

加载外部swf时,若addchild(loader)写在complete完成事件函数的外边,则被加载的swf可以只有一帧。若写在complete事件函数内,即等加载完成才add,则被加载swf必须为2帧或以上

(事件太长了,其中原理、理由,都不记得了,也没写下来)

若tweener报错:参数为2,只get1 之类的错误,确保传参数量正确,若还是出错,重装下tweener类即可

1180:调用的方法addframscript可能未定义,把文档类extends sprite改称extendsmovieclip,因为addframscript是movieclip才有的方法

多点触控相关事件:

flash.ui.multitouch

genstureevent.pressandtapgestureevent

touchevent.transformgestureevent

若movie1.flv在flash中播放到一半卡住了,换个其他flv视频看了如果不卡,那可能是movie1.flv本身视频编码有问题,重新导一下就好了

若ns加video时开始play卡住,调一下播放头seek(1)即可

在时间轴上直接做遮罩,火狐下无法显示被遮罩的动态文本,只要取消时间轴遮罩,改用mc.mask =遮罩mc;即可

--------------------------------------------------------------------

动态获取flash中各种地方的元件:

as3中的“eval”,获取舞台上的实例名:

var mc:movieclip = this.getchildbyname("img"+5)

获取库中的类:

var class:Class = getDefinitionByName("某张位图在库中的名字") asClass;

var bmp:bitmapdata = new class(0,0) as bitmapdata;

动态创建库中的类:

for(var i = 0;i<10;i++){

this["mc"+i] = new movieclip();

}

在元件中获取主时间轴上的"mc"元件:
root["mc"].属性 = ****

如A.swf加载B.swf,B中某mc内要调用A主时间轴上的代码并传值:
root.parent.root("函数名")(参数1,参数2)

如A中有mc,mc中有mc2,A还有clip与mc同级,clip中要控制mc2的属性
root["mc"]["mc2"].属性 = ****
若要用mc2的函数
root["mc"]["mc2"]["函数名"](参数1,参数2)

loader.content外部东西被加载后在flash中的类型:
载入swf,类型moviecip
载入位图,类型bitmap,而不是data

--------------------------------------------------------------------

as3图像、效果之类:

杂点perlinnoise和displayfilter配合使用:

1. 弄一张纯色图片,对其perlinnoise处理

2. 将纯色图用作位图的样板,加入filter,并处理位图

3. 若要动,则不时变换offsets:array中两个点的位置

使用置换图滤镜displaymentmapfilter时,参考图A和呈现效果的图B的顺序:

var filter = newdisplaymentmapfilter(图A,,,后面省略);(scaleX=30,scaleY=30,建议这样设置,数字太小会没效果)

图A.applyfilter(图B,,,,filter);

var bmp = new bitmap(图A);

以图A为colorchannel样本,在图B上呈现效果

RGB = "0x"+bmp.getpixel(x,y).toString(16);

ps中,若文字被上下顶格裁切存为png,则在flash中文字底部会有模糊痕迹,只要切图别顶格切就能解决了

只需一个mc就能实现切换图:
class = getDefi...ByName(库中的位图名) as Class;
bmp.bitmapData = new class(0,0) as bitmapdata;

tweener的类库里有colorshortcuts这东西,写一下参数值的区域:
_color:0x0000ff
_brightness:0 - 2.55
_tintbrightness:-2.55 - 2.55(黑 - 白)渐变色彩亮度
_colortransform:分成4个通道8个参数,进行缓动渐变
_contrast:-1 - 1
_hue:-180 - 180
_saturation:饱和度,0纯灰,1正常,2高饱和
_dumbsaturation:不考虑对发光度影响,对RGB三个通道平均分配饱和度调整方式

--------------------------------------------------------------------

文本textfiled的那些:

1. 动态文本的字无法消除锯齿,貌似只能通过转成图优化(现在的flash版本不知如何了)

2. as3代码生成的动态文本在遮罩下无法显示,只能通过转成bitmap,再遮罩

3. 动态文本变色直接用textcolor属性,别用colortransform

4. 动态控制stage上文本显示区域:(忘了这是为了做什么功能要这么搞的。。)

1.stage上放个textfield:tf0,让其width=100,并设字体样式,height无视

2.代码生成一个新的textfield:tf1,通过外部调进的文本先放到这个tf1中,并设置成和stage上的那个tf0一样的属性

3.代码生成的tf1,设置换行什么的,让所有蚊子完整显示在tf上,但不addchild到stage上

4.当tf1中有文字后,获取tf1.height,让stage上的tf0的height等于tf1的height就能控制放在stage上的tf的height

5. text.width = text.textwidth可设置text框和文本一样宽,不会长出一截

6. 滚动文本:text2.x = text1.x + text1.textwidth + 20,通过if(text1.x <text1.textwidth)判断text1是否出界,要置到text2后面

无需嵌入字体的方法:如果特殊字体的文字不多,则直接在stage外围放一个动态文本,设置需要的字体,把所有文字写入这个动态文本

settextformat是方法,用于文本赋值后。defaulttextformat是属性,用于文本赋值

--------------------------------------------------------------------

flash与js通信、webview

若使用externalinterface.addCallback()注册函数名为“pan”,而js无法调用该方法,猜测可能因与JSDOM对象的方法重名了

var pdf.File =File.applicationDirec..(单词太长省略).resolvePath("assets/index.html")
stagewebview.loadURL(pdf.nativePath)
显示本地网页

webstageview网页缩放

(或content="width=device-width,initcal-scale=1.0,user-scalable-yes")
自动设置缩放倍数和是否允许缩放

swf放网页上时,flash内调用的文件、xml、图像之类,都要以swf所在html的路径为参照,这个切记!上家公司有个ruby小日本从来就记不住这点。。无语

当swf用于网页上,且被其他swf调用时,若要设置原件x y,尽量直接给定数值,不要用mc.x =stage.stageheight之类(stage.stageheight拼错了,反正,意思就这个)

as3的fla无法复制as2的fla里的元件

flash截取url后面的值:(彻底忘了,不记得了)

如js中,var param = window.location.search

例,url为.....html?a=1&b=2

flash中用:

var recp = externalinterface.call("js","")即可获取

用IE低版本播放flash loading失效:

把web标准代码改成旧版IE代码html

在JS中调用时,为flash所在object设置id,并设置allowscriptaccess为“always”

firefox中,wmode = "window" 时,mousewheel可用

当wmode = "opaque"时,flash不会挡住菜单栏

transparent应该是透明

1009/1010 at function/()匿名函数

如setTimeout(function(){}),这个function就是匿名函数


--------------------------------------------------------------------

AIR

AIR文件储存路径:

1. file.desktopdirectory.resolvepath("****")

C:documents and settings当前用户名桌面

2. **.applicationstoragedirectory.****

C:documents and settings当前用户名application data应用程序项目名localstore

3. **.documentsdirectory.***

C:documents and settings当前用户名my documents

没windows下排任务栏:

1. stage.nativewindow.close()

2. window = new nativewindow

3. window.activte()

--------------------------------------------------------------------

PV3D和其他flash3D(我几乎不做3D的项目,所以新的flash3D技术基本不懂)

PV3D加载.3ds模型,纹理显示不了,要用jpg贴图,不能用png

--------------------------------------------------------------------

flash手机端

安卓再GPS可用且用户也开启的情况下调不到GPS值,可能是室内信号问题,到室外就可以了

starling开发,direct嵌入网页得把wmode改成direct

flash IOS项目的根目录下如果存在名为resources的目录,在APP正式提交时,会出现关于证书无效的错误

--------------------------------------------------------------------

flex

用百分比布局组件,加了resize事件,以适应浏览器大小,慢慢拖动浏览器效果是正常的,快速or双击浏览器放大的时候,组件大小不会变,反应不过来
解决:用callLater延迟下就好了

adt打包时,若error 301:Application descript missing/cannot beopened
检查xml文件编码格式是否是UTF-8

flex用iFrame嵌套Html,iframe.source = 链接地址

flex中
代码中用this["img"+3]可以灵活调用,不是getChildByName
只能用id来命名,不能用name属性

不管import的mxml放在啥位置,外部类包始终放在项目src目录下,与内部mxml位置无关

--------------------------------------------------------------------

其他

firework压缩png时,用“图像预览”导出

flash音效太差的话,在“发布设置”里选音频选项mp3 128kpbs 立体声

AI的那个黑框在文档设置中改大小,“文件”-“文档设置”

GIF去掉一圈圈颜色的方法,在ps中保存,在“仿色”中选“扩散”

AfterEffect相关(我用的是CS3那个时代的AE,好久不用这玩意了)

1.输出avi时,质量要选最高

2.不能导入swf,在flash中输出为avi再导入

3.每次都要自己调整锚点对称,否则缩放时中心点不对要影响元件缩放的对称性

4.文字间距(是一个个字符)不能用缩放控制,要用钢笔绘制一条黄线,再在“文本”-“路径选择”-打开“平衡排列”-调整“开始,结束留空”

5.那种文字上一束束光扫过,用的是“放射模糊”特效

6.那种颜色由亮稠化为原图,用“曝光”特效

7.像silenthill那样老电影回忆般的颗粒抖动的画面,用“漫射”

8.用wave world,要预览水波,在“模拟”-“预览(秒)”设成>0的数

9.“文本”-“动画”添加的是对文本中单个字的处理,而“变换”添加的是对整行文字块的处理

cool edit单声道边双声道,选单声道混缩,然后插入到多轨

--------------------------------------------------------------------
as3★flashas3小tips整理 flash as3.0教程

as2.0

_root指向根影片,若a.swf加载b.swf,那b.swf中的_root就是指向a.swf了

eval用法,调元件内的东西的格式:eval_r("mc.label"+变量).text = ……

直接把路径写在双引号内

文本转bitmap不透明解决方法:

var xx:bmp = new bmp(xx,xx,true,0x00ff0000)

true为透明度,0x00的00为透明度

完后把原先文本的_visible给false掉

textformat要在文本中有字后再set才有用

  

爱华网本文地址 » http://www.aihuau.com/a/25101017/327569.html

更多阅读

edius5.0教程全集 edius5.0视频转码教程

edius5.0教程全集——简介一、 剪辑操作实例二、 视频滤镜应用实例三、 键效果实例四、 特殊使用特技转场五、 多时间线嵌套的应用六、 音频编辑实例七、 字幕实例edius5.0教程全集——工具/原料最好先卸载电脑上的暴风影音,

ActionScript3.0编程基础(一)AS3概述 as3.0游戏编程pdf

ActionScript3.0 是针对FlashPlayer运行时环境的编程语言,它拥有处理各种人机交互、数据交互等功能。ActionScript3.0与ActionScript以前的版本有着本质上的不同,它是一门功能强大、符合业界标准的面向对象的编程语言。它在Flash编程

CorelDraw9.0_小艾在 coreldraw 9.0破解版

http://hi.baidu.com/seanyi/blogCorelDraw9.0简体中文完整版下载地址(深圳印刷公司专用版)2010/06/02 09:13CorelDraw最稳定的两个版本,一个是CorelDraw9.0,一个是CorelDraw12.0;现在出的CD X3CDX4 CDX5文件大不说对电脑的配置要求也高

转载 flashas3.0进度条 flash as3.0

原文地址:flashas3.0进度条作者:Johnnystage.scaleMode=StageScaleMode.NO_SCALE;//设置舞台属性不跟随播放器大小而改变stage.showDefaultContextMenu=false;//屏蔽右键菜单stage.frameRate=12;//帧频率var stageW=stage.stageWidth;

小辣椒电信版刷MEID教程 小辣椒手机刷机教程

小辣椒电信版刷MEID教程 此教程为本人原创,转载请注明出处 By小梦于2013.2.26【免责声明】-------------------------------------------------------【免责声明】抢救说明:本人系小白,刷机慎重,个人测试成功不代表你也能成功,产生

声明:《as3★flashas3小tips整理 flash as3.0教程》为网友小姐为谁妖分享!如侵犯到您的合法权益请联系我们删除