Flash as3 常用技巧汇总
以上是我对Flash as3常见问题的一些整理。技术的汇总,希望对大家学习Flash as3有所帮助
B布局
如何避免矢量图模糊
复制内容到剪贴板
代码:
规则图形使用整数的坐标和宽度,并不要使用中心坐标。
F反射
根据类名得到相应的实例 , 模拟Flash as2的attachMovie
复制内容到剪贴板
代码:
protected function attachMc(className : String):Sprite
{
var mc: Class = getDefinitionByName(className) as Class;
return new mc() as Sprite;;
}
H后臺
防止后臺數據被緩存
复制内容到剪贴板
代码:
在訪問的頁面后加上隨機參數
urlloader.load ( new URLRequest ( "http://localhost/service.php?random"+Math.random() ) );
防止讀取中文頁面出現亂碼
复制内容到剪贴板
代码:
使用URLStream 并使用readMultiByte 讀取數據
J剪辑控制
任何位置的跨场景影片控制:
复制内容到剪贴板
代码:
MovieClip ( root ).gotoAndPlay ( 帧书 , "场景" );
点评:在主影片从MovieClip集成的情况下,root为MainTimeline类型,其实也是一个MovieClip
K扩展
安装AIR for Flash CS3 扩展
复制内容到剪贴板
代码:
官方声明air extension b2只能支持英文版本
S鼠标交互
ReleaseOutSide的实现方式
复制内容到剪贴板
代码:
方法1
对目标mc做如下处理
mc.addEventListener ( MouseEvent.MOUSE_DOWN , 添加stage的监听 );
并对stage.addEventListener ( MouseEvent.MOUSE_UP , 移除stage监听 );
mc.addEventListener ( MouseEvent.MOUSE_UP , 移除stage的监听 );
方法2
创建临时层用于遮挡鼠标事件,并侦听这个临时层的MouseEvent.MOUSE_UP事件用于适时的移除临时层。
同时侦听stage的Event.RESIZE事件用于重绘临时层的大小。
S时间处理
秒转为时分秒格式
复制内容到剪贴板
代码:
function secToTime ( secs:int ):String {
var h:int = Math.floor ( secs / 3600);
var m:int = Math.floor ( ( secs - h * 3600 ) / 60 );
var s:int = secs - h * 3600 - m * 60;
return h + " : " + m + " : " + s;
}
S数学
获得指定范围随机数
复制内容到剪贴板
代码:
function random ( range:Number ):Number {
return Math.random() * range;
}
S沙箱策略
跨域加载图片
复制内容到剪贴板
代码:
var pic_loader_context = new LoaderContext(true);
pic_loader.load(pic_urlr,pic_loader_context);
多运行时共享库需要注意的问题
复制内容到剪贴板
代码:
多个swf库被载入。那么取出元素所需要的applicationDomain也就是各个swf所在的loaderInfo.applicationDomain
这样的情况,在调用applicationDomain.getDefinition获取类标识之前,先确定好applicationDomain是否是所
需的那一个每个swf的applicationDomain默认都是不同的。所以可以存储这些swf以备使用。
W文本
在文本缩小的时候字不会消失的办法
复制内容到剪贴板
代码:
使用BitmapData,以new BitmapData ( width , height , true , 0x00FFFFFF )方式构造,
然后draw方法绘制出文字,可保持文本背景透明的同时,达到完美缩放效果。
我建议打开Bitmap的smoothing属性。
獲得文本的光標位置 核心方法
复制内容到剪贴板
代码:
public function getPosition ( txt:TextField ):Point {
var currentIndex:int = txt.caretIndex;
var rect:Rectangle = txt.getCharBoundaries(currentIndex);
if ( rect==null ) return null;
else return new Point (rect.x,rect.y);
}
如何擴展TextArea
复制内容到剪贴板
代码:
TextArea有protected屬性textField
可在繼承之后使用,并在內部擴展行為。
其他
Flex結合FlashCS3項目中需要注意的問題
复制内容到剪贴板
代码:
一些組件只能在FLASH中編譯,而定義在Flex中找不到。解決辦法
在Flex不要使用只有FLASH能識別的類定義。
可以考慮向上轉型 并使用對象["屬性"]的方式賦值
可以避免類定義在Flex中存在時的編譯錯誤。
复制内容到剪贴板
代码:
降低程序耦合度
單元,或者稱之為模塊之間,使用事件關聯,
組合關系不宜嵌套過深。可以避免編譯進來許多用不到的類使編譯時間成倍增長,
并會彈出不是錯誤的編譯時錯誤。這句話大概得在項目中理解了。
使用拖曳,并带有多元素联动的注意问题
复制内容到剪贴板
代码:
不要在这样的情况下使用startDrag再根据拖动元素坐标计算的方法。而使用stage一级的MouseEvent.MOUSE_MOVE
否则无法保证联动元素之间因赋值顺序发生的错位。
Flash as2 过度Flash as 3 专题
关于Fla中的Flash as3代码书写注意事项
复制内容到剪贴板
代码:
使用舞台实例,需确保在当前帧可访问,这个加入一个if判断就能够做到。
复制内容到剪贴板
代码:
时间轴上的 play (); stop (); gotoAndPlay () 等,没有任何改变,和以前一样的用
访问主场景使用 MovieClip ( root )
复制内容到剪贴板
代码:
结合文档类使用,出现对于stage一级引用,推荐使用推迟初始化时间,采用
在构造函数中侦听Event.ADDED_TO_STAGE
并开始执行初始化内容
复制内容到剪贴板
代码:
当文档类中需要使用舞台变量,同样加上if判断来保险
复制内容到剪贴板
代码:
Linkage的元件链接中的Class,可以忽略其实际类存在的警告,当作一个标识名使用。
复制内容到剪贴板
代码:
fla的类都是Runtime binding
复制内容到剪贴板
代码:
判断影片或者效果播放在哪可以在帧上分派事件出来
复制内容到剪贴板
代码:
纯透明度变化的动画效果。可以少使用时间轴制作,而使用类似TweenLite一类的缓冲工具制作。可减少出现null exception的几率
复制内容到剪贴板
代码:
需要使用到文档类的时候。可以多把效果的代码写在fla中而把业务逻辑写在文档类中。
复制内容到剪贴板
代码:
gotoAndPlay 一类属于异步操作,不要认为执行了gotoAndPlay之后那一帧上的实例就马上可以访问到并使用。
复制内容到剪贴板
代码:
Linkage类中的基本类型,如需扩展,推荐从Sprite中扩展
复制内容到剪贴板
代码:
不要在从Sprite型得到继承的位置使用帧上代码,例如Sprite型文档类,或者Sprite型的Linkage的帧上如果加入代码就会
提示addFrameScript错误,因为这个是属于Sprite子类MovieClip的隐藏方法。
复制内容到剪贴板
代码:
Flash as2以及Flash as3 的swf通讯可以使用LocalConnection非常好用,记得在LocalConnection别忘记用try catch
基于SharedObject的通讯也是可以考虑使用的。
复制内容到剪贴板
代码:
Event.RESIZE时间并不是任何显示对象都可用,推荐只对stage使用此事件侦听并做统一的大小重设调度
复制内容到剪贴板
代码:
对于元件大小因为不可见元素的计算导致并非实际所见大小可以考虑使用linkage继承并覆盖其get width get height 属性选择器
复制内容到剪贴板
代码:
元件的on ( rollover ) {} 或者 instance.onRollOver = function () {}
可以使用
instance.addEventListener ( MouseEvent.ROLL_OVER , rolloverHandler );
function rollHandler ( event:Event ):void {}
来替代
DEMO源代码
應用程序常用圖標匯總
复制内容到剪贴板
代码:
http://www.famfamfam.com/archive/silk-icon-set-released/
鍵盤控制[臨時的enterframe判斷]源代碼
复制内容到剪贴板
代码:
下载次数: 165
2008-8-1 18:28
窗體改變尺寸的穩定實現
复制内容到剪贴板
代码:
下载次数: 348
2008-8-14 18:54
复制内容到剪贴板
代码:
下载次数: 175
2008-8-14 18:54
Cinema 4D中的菜单
复制内容到剪贴板
代码:
2008-8-20 09:36
下载次数: 367
2008-8-20 09:36
下载次数: 206
2008-8-20 09:36
‘
送mp3播放器界面
配合Adobe界面所使用的设计
复制内容到剪贴板
代码:
2008-8-20 09:55
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |