{"id":652,"date":"2009-01-06T14:01:40","date_gmt":"2009-01-06T06:01:40","guid":{"rendered":"http:\/\/fdream.net\/blog\/article\/652.aspx"},"modified":"2009-01-06T15:01:03","modified_gmt":"2009-01-06T07:01:03","slug":"AS3%e4%bd%8d%e5%9b%be%e4%bb%bb%e6%84%8f%e5%bd%a2%e5%8f%98%e4%b8%80%e6%ad%a5%e4%b8%80%e6%ad%a5%e6%9d%a5%ef%bc%884%ef%bc%89%e2%80%94%e2%80%94%e4%bb%bb%e6%84%8f%e5%bd%a2%e5%8f%98","status":"publish","type":"post","link":"https:\/\/fdream.net\/blog\/article\/652","title":{"rendered":"AS3\u4f4d\u56fe\u4efb\u610f\u5f62\u53d8\u4e00\u6b65\u4e00\u6b65\u6765\uff084\uff09\u2014\u2014\u4efb\u610f\u5f62\u53d8"},"content":{"rendered":"<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\uff1a<a href=\"http:\/\/fdream.net\" target=\"_blank\" title=\"http:\/\/fdream.net\">http:\/\/fdream.net<\/a>\uff0c\u4f5c\u8005\uff1aFdream<\/p>\n<p>\u653e\u7740\u653e\u7740\u5c31\u5fd8\u4e86\uff0c\u591a\u4e8farmy\u540c\u5b66\u5728\u540e\u9762\u50ac\u6211\uff0c\u8981\u4e0d\u7136\u8fd8\u771f\u4e0d\u77e5\u9053\u4ec0\u4e48\u65f6\u5019\u4f1a\u7ee7\u7eed\u5f04\u8fd9\u4e2a\u3002\u4eca\u5929\u4e0a\u5348\u53c8\u62bd\u7a7a\u6363\u9f13\u4e86\u4e00\u4e0b\uff0c\u504f\u79fb\u603b\u7b97\u662f\u5f04\u51fa\u6765\u4e86\uff0c\u4e0d\u8fc7\u6e32\u67d3\u6548\u7387\u5f88\u4f4e\uff0c\u4e2d\u95f4\u7684\u8ba1\u7b97\u8fc7\u7a0b\u5e94\u8be5\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u4f18\u5316\u7684\u3002\u53e6\u5916\uff0c\u5f04\u5230\u8fd9\u91cc\u53d1\u73b0\u8fd8\u662f\u6709\u95ee\u9898\uff0c\u5206\u5f97\u8f83\u7ec6\u7684\u65f6\u5019\u4f1a\u51fa\u73b0\u88c2\u7f1d\u2026\u2026\u8bef\u5dee\u771f\u53ef\u6015\uff01<\/p>\n<p>\u5148\u4e0d\u7ba1\u8fd9\u4e2a\u8bef\u5dee\uff0c\u6211\u4eec\u6765\u770b\u770b\u80fd\u4e0d\u80fd\u5f62\u53d8\u5148\u3002\u7531\u4e8e\u8ba1\u7b97\u5f62\u53d8\u77e9\u9635\u9700\u8981\u521d\u59cb\u7684\u5750\u6807\u548c\u65b0\u7684\u5750\u6807\uff0c\u9700\u8981\u4e24\u4e2a\u65b9\u6cd5\u6765\u8ba1\u7b97\uff08\u8c8c\u4f3c\u53ef\u4ee5\u5408\u5e76\uff1f\uff09\uff1a<\/p>\n<p><pre lang=\"actionscript\">\n\/\/ calculate points\n\/\/ \u5305\u542bx\u5750\u6807\u548cy\u5750\u6807\uff0c\u5206\u522b\u5b58\u50a8\u5728pxs\u548cpys\u6570\u7ec4\u4e2d\n\/\/ @params:\n\/\/   w: \u4f4d\u56fe\u5bbd\n\/\/   h: \u4f4d\u56fe\u9ad8\n\/\/   hs: \u6c34\u5e73\u5206\u6bb5\u6570\n\/\/   vs: \u5782\u76f4\u5206\u6bb5\u6570\n\/\/ @return:\n\/\/   void\nfunction CalculatePoints(w:Number, h:Number, hs:Number, vs:Number):void {\n    var iw:Number = w \/ hs;\n    var ih:Number = h \/ vs;\n    for (var h=0; h&lt;=hs; h++) {\n        pxs[h] = h * iw;\n    }\n    for (var v=0; v&lt;=vs; v++) {\n        pys[v] = v * ih;\n    }\n}\n<\/pre>\n<\/p>\n<p>\u8ba1\u7b97\u65b0\u7684\u5750\u6807\uff0c\u4e5f\u5c31\u662f\u5f62\u53d8\u540e\u7684\u5750\u6807\uff1a<\/p>\n<p><pre lang=\"actionscript\">\nfunction CalculateNewPoints(p0:Point, p1:Point, p2:Point, p3:Point, hs:Number, vs:Number):void {\n    var lp:Point = new Point(p0.x, p0.y);\n    var rp:Point = new Point(p1.x, p1.y);\n\n    var lxd:Number = (p2.x - p0.x)\/vs;\n    var lyd:Number = (p2.y - p0.y)\/vs;\n\n    var rxd:Number = (p3.x - p1.x)\/vs;\n    var ryd:Number = (p3.y - p1.y)\/vs;\n    nps = [];\n    for (var v=0; v&lt;=vs; v++) {\n        lp.x = p0.x + lxd * v;\n        lp.y = p0.y + lyd * v;\n        rp.x = p1.x + rxd * v;\n        rp.y = p1.y + ryd * v;\n\n        nps.push(new Array());\n        var xd:Number = (rp.x - lp.x)\/hs;\n        var yd:Number = (rp.y - lp.y)\/hs;\n        for (var h=0; h&lt;=hs; h++) {\n            nps[v].push(new Point(lp.x + xd * h, lp.y + yd * h));\n        }\n    }\n}\n<\/pre>\n<\/p>\n<p>\u518d\u662f\u8ba1\u7b97\u5f62\u53d8\u77e9\u9635\u7684\u51fd\u6570\uff0c\u7531\u4e8e\u5728\u8fd9\u91cc\u6211\u4eec\u4f1a\u5bf9\u4fbf\u5b9c\u8fdb\u884c\u5355\u72ec\u5904\u7406\uff0c\u6240\u4ee5\u8fd9\u91cc\u4e0d\u9700\u8981\u8ba1\u7b97\u504f\u79fb\u3002<\/p>\n<p><pre lang=\"actionscript\">\nfunction CalculateMatrix(oa:Object, ob:Object):Matrix {\n    var p1 = oa.p1, p2 = oa.p2, p3 = oa.p3;\n    var pa = ob.p1, pb = ob.p2, pc = ob.p3;\n    var mt:Matrix = new Matrix();\n    mt.a = ((p3.y - p1.y)*(pb.x - pa.x) - (p2.y-p1.y)*(pc.x-pa.x))\/((p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y));\n    mt.b = ((p3.y - p1.y)*(pb.y - pa.y) - (p2.y-p1.y)*(pc.y-pa.y))\/((p3.y-p1.y)*(p2.x-p1.x)-(p3.x-p1.x)*(p2.y-p1.y));\n    mt.c = ((p3.x - p1.x)*(pb.x - pa.x) - (p2.x-p1.x)*(pc.x-pa.x))\/((p2.y-p1.y)*(p3.x-p1.x)-(p3.y-p1.y)*(p2.x-p1.x));\n    mt.d = ((p3.x - p1.x)*(pb.y - pa.y) - (p2.x-p1.x)*(pc.y-pa.y))\/((p2.y-p1.y)*(p3.x-p1.x)-(p3.y-p1.y)*(p2.x-p1.x));\n    \/\/ mt.tx = ((pb.x*p1.x - pa.x*p2.x)*(p3.y*p1.x-p1.y*p3.x)-(pc.x*p1.x-pa.x*p3.x)*(p2.y*p1.x-p1.y*p2.x))\/((p1.x-p2.x)*(p3.y*p1.x-p1.y*p3.x)-(p1.x-p3.x)*(p2.y*p1.x-p1.y*p2.x));\n    \/\/ mt.tx = ((pb.y*p1.x - pa.y*p2.x)*(p3.y*p1.x-p1.y*p3.x)-(pc.y*p1.x-pa.y*p3.x)*(p2.y*p1.x-p1.y*p2.x))\/((p1.x-p2.x)*(p3.y*p1.x-p1.y*p3.x)-(p1.x-p3.x)*(p2.y*p1.x-p1.y*p2.x));\n    return mt;\n}\n<\/pre>\n<\/p>\n<p>\u6700\u540e\u5c31\u662f\u8981\u5bf9\u4e09\u89d2\u5f62\u8fdb\u884c\u5f62\u53d8\uff0c\u8fd9\u4e2a\u51fd\u6570\uff1a<\/p>\n<p><pre lang=\"actionscript\">\n\/\/ \u8981\u4f20\u8fdb\u6765\u7684\u53c2\u6570\u662f\u4f4d\u56fe\u56db\u4e2a\u89d2\u7684\u65b0\u5750\u6807\nfunction rendNew(p0:Point, p1:Point, p2:Point, p3:Point) {\n    \/\/ \u5148\u8ba1\u7b97\u6bcf\u4e2a\u70b9\u7684\u65b0\u5750\u6807\u4f4d\u7f6e\n    CalculateNewPoints(p0, p1, p2, p3, hs, vs);\n\n    var pa:Point, pb:Point, pc:Point, pd:Point;\n    var m1:Matrix, m2:Matrix;\n    var tid:Number = 0;\n    var ps0:Point = new Point(pxs[0], pys[0]);\n    var psa:Point = nps[0][0];\n    for (var v=0; v&lt;vs; v++) {\n        for (var h=0; h&lt;hs; h++) {\n            p0.x = pxs[h];\n            p0.y = pys[v];\n            p1.x = pxs[h+1];\n            p1.y = pys[v];\n            p2.x = pxs[h];\n            p2.y = pys[v+1];\n            p3.x = pxs[h+1];\n            p3.y = pys[v+1];\n            pa = nps[v][h];\n            pb = nps[v][h+1];\n            pc = nps[v+1][h];\n            pd = nps[v+1][h+1];\n\n            tid = v*hs*2 + h*2;\n            var ta = trs[tid];\n            var tb = trs[tid+1];\n            m1 = CalculateMatrix({p1:p0, p2:p1, p3:p2}, {p1:pa, p2:pb, p3:pc});\n            if (tid &gt; hs * 2 &amp;&amp; h != 0) {\n                m1.tx = trs[tid - hs * 2 - 1].transform.matrix.tx;\n                m1.ty = trs[tid - hs * 2 - 1].transform.matrix.ty;\n            } else {\n                m1.tx = 0;\n                m1.ty = 0;\n            }\n            \n            m2 = CalculateMatrix({p1:p1, p2:p2, p3:p3}, {p1:pb, p2:pc, p3:pd});\n            if(v &gt; 0){\n                m2.tx = trs[1].transform.matrix.tx * (h + 1) * (v + 1);\n            }\n            else{\n                m2.tx = ((pb.x - psa.x) - (p1.x - pxs[0])) - ((pd.x - nps[v+1][0].x) - (p3.x - pxs[0]));\n            }\n            if(tid &gt; 0){\n                m2.ty = trs[1].transform.matrix.ty * (h + 1) * (v + 1);\n            }\n            else{\n                m2.ty = ((pc.y - psa.y) - (p2.y - pys[0])) - ((pd.y - nps[0][h+1].y) - (p3.y - pys[0]));\n                trace(m2.ty);\n            }\n            ta.transform.matrix = m1;\n            tb.transform.matrix = m2;\n        }\n    }\n}\n<\/pre>\n<\/p>\n<p>\u55ef\uff0c\u8fd9\u5b9e\u5728\u662f\u592a\u51d1\u5408\u4e86\uff0c\u9700\u8981\u5408\u5e76\u8bb8\u591a\u8ba1\u7b97\uff0c\u540e\u9762\u7ee7\u7eed\u4f18\u5316~<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u51fa\u5904\uff1ahttp:\/\/fdream.net\uff0c\u4f5c\u8005\uff1aFdream \u653e\u7740\u653e\u7740\u5c31\u5fd8\u4e86\uff0c\u591a\u4e8farmy\u540c\u5b66\u5728\u540e\u9762\u50ac\u6211\uff0c\u8981\u4e0d\u7136\u8fd8\u771f\u4e0d\u77e5\u9053\u4ec0\u4e48\u65f6\u5019\u4f1a\u7ee7\u7eed\u5f04\u8fd9\u4e2a\u3002\u4eca\u5929\u4e0a\u5348\u53c8\u62bd\u7a7a\u6363\u9f13\u4e86\u4e00\u4e0b\uff0c\u504f\u79fb\u603b\u7b97\u662f\u5f04\u51fa\u6765\u4e86\uff0c\u4e0d\u8fc7\u6e32\u67d3\u6548\u7387\u5f88\u4f4e\uff0c\u4e2d\u95f4\u7684\u8ba1\u7b97\u8fc7\u7a0b\u5e94\u8be5\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u4f18\u5316\u7684\u3002\u53e6\u5916\uff0c\u5f04\u5230\u8fd9\u91cc\u53d1\u73b0\u8fd8\u662f\u6709\u95ee\u9898\uff0c\u5206\u5f97\u8f83\u7ec6\u7684\u65f6\u5019\u4f1a\u51fa\u73b0\u88c2\u7f1d\u2026\u2026\u8bef\u5dee\u771f\u53ef\u6015\uff01 \u5148\u4e0d\u7ba1\u8fd9\u4e2a\u8bef\u5dee\uff0c\u6211\u4eec\u6765\u770b\u770b\u80fd\u4e0d\u80fd\u5f62\u53d8\u5148\u3002\u7531\u4e8e\u8ba1\u7b97\u5f62\u53d8\u77e9\u9635\u9700\u8981\u521d\u59cb\u7684\u5750\u6807\u548c\u65b0\u7684\u5750\u6807\uff0c\u9700\u8981\u4e24\u4e2a\u65b9\u6cd5\u6765\u8ba1\u7b97\uff08\u8c8c\u4f3c\u53ef\u4ee5\u5408\u5e76\uff1f\uff09\uff1a \/\/ calculate points \/\/ \u5305\u542bx\u5750\u6807\u548cy\u5750\u6807\uff0c\u5206\u522b\u5b58\u50a8\u5728pxs\u548cpys\u6570\u7ec4\u4e2d \/\/ @params: \/\/ w: \u4f4d\u56fe\u5bbd \/\/ h: \u4f4d\u56fe\u9ad8 \/\/ hs: \u6c34\u5e73\u5206\u6bb5\u6570 \/\/ vs: \u5782\u76f4\u5206\u6bb5\u6570 \/\/ @return: \/\/ void function CalculatePoints(w:Number, h:Number, hs:Number, vs:Number):void { var iw:Number = w \/ hs; var ih:Number = h \/ vs; for (var h=0; h&lt;=hs; h++) { pxs[h] = h * iw; &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[216,78,298,63],"class_list":["post-652","post","type-post","status-publish","format-standard","hentry","category-coding","tag-ActionScript","tag-AS","tag-AS3","tag-flash"],"views":8256,"_links":{"self":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts\/652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/comments?post=652"}],"version-history":[{"count":0,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/posts\/652\/revisions"}],"wp:attachment":[{"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/media?parent=652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/categories?post=652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fdream.net\/blog\/wp-json\/wp\/v2\/tags?post=652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}