看板 Flash 關於我們 聯絡資訊
廢話不多說,直接提供範例: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" width="800" height="600"> <mx:Script> <![CDATA[ import mx.core.UIComponent; private const HH:int = 4; private const VV:int = 3; private const H_GAP:int = 5; private const V_GAP:int = 5; protected function image1_completeHandler(event:Event):void { var img:Image = event.currentTarget as Image; var content:DisplayObject = img.content; var m_width:Number = content.width / HH; var m_height:Number = content.height / VV; var bd:BitmapData; var bmp:Bitmap; var matrix:Matrix; for(var v:int=0; v<VV; v++){ for(var h:int=0; h<HH; h++){ matrix = new Matrix(); matrix.translate(-m_width * h, -m_height * v); bd = new BitmapData(m_width, m_height); bd.draw(content, matrix); bmp = new Bitmap(bd); bmp.x = (m_width + H_GAP) * h; bmp.y = (m_height + V_GAP) * v; imgContainer.addChild(bmp); } } } ]]> </mx:Script> <mx:Image id="img" source="http://blog.liuhongwei.cn/wp-content/uploads/2009/08/java-duke-guitar.png" complete="image1_completeHandler(event)"/> <mx:UIComponent id="imgContainer" width="{img.width}" height="{img.height}" /> </mx:Application> ※ 引述《larcenciel12 (頭哥)》之銘言: : 廢話不多說直接切入問題>< : 小弟突發奇想想利用一張大圖以 bitmap類別 + Matrix類別 切割成9宮格狀 : ●●● : ●●● <<--大概是這樣子的感覺 : ●●● : 目的是為了方便對個別的切割做多張圖片的過場動畫 : 程式碼如下 : 邏輯: : 以迴圈重複九次便利用矩陣排列公式移動Translate的位置擷取後再排列成一排供測試。 : for (var i:int = 0; i < 9;i++){ : var ori:OrigamiMurexBmp = new OrigamiMurexBmp;//此行為自訂圖片 : var myBitmapData:BitmapData=new BitmapData(ori.width/3, ori.height/3) ; : var mat:Matrix=new Matrix(); : mat.translate( (i % 3 )* ori.width/3 , Math.floor(i / 3) * ori.height/3); : myBitmapData.draw(ori, mat); : var clip2_mc:Bitmap = new Bitmap(myBitmapData); : clip2_mc.x = i * 73;//排列切出來的圖片 : addChild( clip2_mc); : }; : 但執行的結果只會出現一張圖片(但試著把mat.translate這行改成自訂的數字 : 例如 : mat.translate(10,10) 卻會出現9張的結果 : 但只要一透過迴圈來定義便會出問題..(只有一張) : 翻了官方的文件及GOOGLE大家似乎也沒出現類似問題..實在令人惱火..>< : 請問各位高手們小弟的邏輯哪裡出了問題呢><? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.239.66
dsmwang:想請問一下,我能完全理解這個程式,但我只會用.swf檔呈現 09/09 19:56
dsmwang:但看這原始碼應該像是能夠嵌入某種東西而快速使用的 09/09 19:57
dsmwang:那我應該怎麼做才能直接使用程式碼,跳過Flash IDE呢? 09/09 19:58
jeaby:樓上你抓flash Develop + flexSDK 就可以不用Flash IDE了 09/09 23:38
dsmwang:喔,還是得編譯出swf就是了 09/10 03:13
dsmwang:那本篇文用xml格式的原因是啥呢?Flex SDK很方便抓xml? 09/10 03:14
aquarianboy:沒什麼原因,因為Flex的code就是長這樣 :) 09/10 04:39
dsmwang:哦,原來是這樣,感謝 =) 09/10 05:24
ben0209:若只點出重點部分,就是 translage(-x, -y) 的那個負號 09/13 11:53