闪吧论坛's Archiver

ycccc8202 发表于 2007-8-1 01:39

分享一个图象变形类(Skew),,位图梯形化[080819]

类代码源自国外一站,站点不记得了.....

先分享下吧,用起来也蛮方便的,可以达到4点控制一张位图

使用方法:

var skew:Skew = new Skew(imageBoard, "Image", 5, 5);//参数分别是一图象容器MC,位图的库中连接名,横向切割刀数,纵向切割刀数(象切西瓜...)

skew.setTransform(x0,y0,x1,y1,x2,y2,x3,y3)//分别为位图四个顶点的坐标设置,4点确定一位图,所以这里可以设置成梯形

效果:





类文件和源文件在附件中~

PS:这里通过Matrix,只是近似模拟出效果,有的位置出的效果也不是很理想,想很理想,还得另寻它法~



[color=red]更新下Skew的AS 3.0版,其实就几个地方变动一下就能照样使用啦~

public class test extends Sprite {[/color]
[color=red]  public function test() {
   var sk : Skew = new Skew(this, "Image", 5, 5);//第二个参数为库中图片绑定的类名
   sk.setTransform(100, 100, 200, 70, 220, 200, 80, 210);
  }
}

注:080819更新

[/color]

[[i] 本帖最后由 ycccc8202 于 2008-8-19 16:07 编辑 [/i]]

终极讨厌 发表于 2007-8-1 06:59

UP!!

呵呵,好东东,收藏!!

谢谢版主!!

jul668 发表于 2007-8-1 09:01

谢谢

quhuan 发表于 2007-8-1 09:32

不错不错,很好

JavaCS3 发表于 2007-8-1 12:20

回复 #1 ycccc8202 的帖子

这是我一直想要的!!!谢啦:lol

终极讨厌 发表于 2007-8-1 12:29

[quote]原帖由 [i]JavaCS3[/i] 于 2007-8-1 12:20 发表
这是我一直想要的!!!谢啦:lol [/quote]


LS为这个事儿确实折腾了一阵子,呵呵!:lol

ycccc8202 发表于 2007-8-1 12:30

恩,以后咱们就直接拿来用

灰常灰常方便!

终极讨厌 发表于 2007-8-1 12:48

[quote]原帖由 [i]ycccc8202[/i] 于 2007-8-1 12:30 发表
恩,以后咱们就直接拿来用

灰常灰常方便! [/quote]


嘿嘿,那是!!
以后就跟版主混了,嘿嘿,捡好东西:lol

liushui812 发表于 2007-8-1 13:42

真的不错,好东西,谢谢了

zszen 发表于 2007-8-1 13:48

不错

tiger_0309 发表于 2007-8-1 14:08

这是flash 3d引擎有关图形扭曲的distortimage类

RedChimae 发表于 2007-8-1 14:28

妙,这正是我想要的,做电子相册不用愁了!:lol

JavaCS3 发表于 2007-8-1 22:03

好!!!!:lol

JavaCS3 发表于 2007-8-2 13:38

[img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img]

JavaCS3 发表于 2007-8-2 13:38

[img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img]

JavaCS3 发表于 2007-8-2 13:39

[img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img]

JavaCS3 发表于 2007-8-2 13:39

[img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img][img]http://218.30.76.31:81/Public/System/EmotePic/200612262140580507551ydw9ih0ds1.gif[/img]

quhuan 发表于 2007-8-2 13:39

这撕病了

陈策 发表于 2007-8-3 00:08

有点讨厌那个人,有点问题一样。:L

love黄家驹 发表于 2007-8-3 00:53

在去年就看过啦,哈哈...


[url]http://www.nikemode.com/blog/article.asp?id=255[/url]

lastmatch 发表于 2007-8-3 13:54

很方便的咚咚

清风9飞扬 发表于 2007-8-25 10:05

好东西。感谢斑竹
奇怪阿多比为什么不解决这个问题,要是做成常用工具多好。

jimson.cn 发表于 2007-8-25 10:36

这个能否做成自动扭曲(随意变形),也就是一加载就onEnterFrame自动变化形状。会不会卡?支不支持大图片?

ycccc8202 发表于 2007-8-25 13:26

精确度要求低点就不怎么卡,宽高别超过2880,应该都行

jimson.cn 发表于 2007-8-25 14:04

那如果用你这个改成自动变化形状的应该怎么改?另外精度又在哪设置?

import com.ycccc.MovieClip.Skew;
var imageBoard:MovieClip = createEmptyMovieClip("imageBoard", dot0.getDepth()-4);
var skew:Skew = new Skew(imageBoard, "Image", 5, 5);
//精度越大效果越好,但不能太大会死机哦~,我这里设置了不能超过20
var w:Number = imageBoard._width;
var h:Number = imageBoard._height;
var sx:Number = 30;
var sy:Number = 30;
var interval:Number;
dotSet();
function dotSet() {
        var p:Array = [[0, 0], [w, 0], [w, h], [0, h]];
        for (var j = 0; j<4; j++) {
                this["dot"+j]._x = sx+p[j][0];
                this["dot"+j]._y = sy+p[j][1];
                this["dot"+j].onPress = function() {
                        this.startDrag();
                        interval = setInterval(this._parent, "flush", 10);
                };
                this["dot"+j].onRelease = this["dot"+j].onReleaseOutside=function () {
                        this.stopDrag();
                        clearInterval(interval);
                };
        }
        skew.setTransform(dot0._x, dot0._y, dot1._x, dot1._y, dot2._x, dot2._y, dot3._x, dot3._y);
}
function flush() {
        updateAfterEvent();
        skew.setTransform(dot0._x, dot0._y, dot1._x, dot1._y, dot2._x, dot2._y, dot3._x, dot3._y);
}

neutra 发表于 2007-8-25 14:05

试了下这算法效率挺高的,可以调整清晰度来减少运算量,合理运用这点用来做动画可以达到比较理想的效果...可惜暂时还没完全看懂代码....继续努力~~~

jimson.cn 发表于 2007-8-25 14:08

嗯!我也试着去改动代码来达到我想要的效果,可惜本人技术有限,没有成功。

ycccc8202 发表于 2007-8-25 14:47

skew.setTransform(x0,y0,x1,y1,x2,y2,x3,y3)

//自动设置4个点的位置不就达到自动变化的效果了,不断调用这个方法就行了

jimson.cn 发表于 2007-8-25 15:58

我试着用春叶飘零版主的方法实现了自动变化,但是为什么播放后速度越来越慢,越来越卡?

function dotSet() {
        var p:Array = [[0, 0], [w, 0], [w, h], [0, h]];
        for (var j = 0; j<4; j++) {
                this["dot"+j]._x = sx+p[j][0];
                this["dot"+j]._y = sy+p[j][1];
                dot0._x = dot0._y=100;
                dot0.onEnterFrame = function() {
                        if (dot0._x<200) {
                                dot0._x += 2;
                                dot0._y += 2;
                                interval = setInterval(this._parent, "flush", 10);
                        } else {
                                clearInterval(interval);
                        }
                };
        }
        skew.setTransform(dot0._x, dot0._y, dot1._x, dot1._y, dot2._x, dot2._y, dot3._x, dot3._y);
}
function flush() {
        updateAfterEvent();
        skew.setTransform(dot0._x, dot0._y, dot1._x, dot1._y, dot2._x, dot2._y, dot3._x, dot3._y);
}

jimson.cn 发表于 2007-8-25 16:54

刚研究了一下还是不知道答案,各位知道的能否说解一下?谢谢

jimson.cn 发表于 2007-8-25 16:54

密切关注ing........

HBrO 发表于 2007-8-25 18:39

记得老外写过一个比较理想的.

linchenrr 发表于 2007-8-25 22:03

哈哈
收下了

linchenrr 发表于 2007-8-25 22:03

[quote]原帖由 [i]HBrO[/i] 于 2007-8-25 18:39 发表 [url=http://space.flash8.net/bbs/redirect.php?goto=findpost&pid=2050013&ptid=339581][img]http://space.flash8.net/bbs/images/common/back.gif[/img][/url]
记得老外写过一个比较理想的. [/quote]

那你快记得是在哪看到的  :lol

HBrO 发表于 2007-8-25 22:17

那先看看这个

ycccc8202 发表于 2007-8-25 22:22

[quote]原帖由 [i]jimson.cn[/i] 于 2007-8-25 15:58 发表 [url=http://space.flash8.net/bbs/redirect.php?goto=findpost&pid=2049954&ptid=339581][img]http://space.flash8.net/bbs/images/common/back.gif[/img][/url]
我试着用春叶飘零版主的方法实现了自动变化,但是为什么播放后速度越来越慢,越来越卡?

function dotSet() {
        var p:Array = [[0, 0], [w, 0], [w, h], [0, h]];
        for (var j = 0; j [/quote]



// 这里用了onE就不用再里面用setInterval了,这样就叠加了,当然会消耗资源

ycccc8202 发表于 2007-8-25 22:26

[quote]原帖由 [i]HBrO[/i] 于 2007-8-25 22:17 发表 [url=http://space.flash8.net/bbs/redirect.php?goto=findpost&pid=2050076&ptid=339581][img]http://space.flash8.net/bbs/images/common/back.gif[/img][/url]
那先看看这个 [/quote]



...还不是这个..

[[i] 本帖最后由 ycccc8202 于 2007-8-25 22:46 编辑 [/i]]

jimson.cn 发表于 2007-8-26 11:03

受教了!效果已经出来了。谢谢“春叶飘零版主”

相当凑合 发表于 2007-9-11 19:18

目前我也有这方面的问题,不过大家表达得。。。而且代码看得。。。。
我再研究一下。。。

东写西读工作室 发表于 2007-9-13 17:43

绝对的好东东啊~

zjwps 发表于 2007-9-13 17:56

有人用过BitmapData写mode7没有,正在尝试写这个

zaurus 发表于 2007-9-13 22:35

have as3 version of skew?i want as3...thx

吉普哈特族 发表于 2007-10-13 12:04

研究一下贴图。

bigbyrd 发表于 2007-10-14 17:39

灰常灰常好

ibio 发表于 2007-10-15 15:16

你们都太强了.强帖!!

lvan 发表于 2007-10-15 18:18

下了.学学

闪秋风 发表于 2007-10-16 20:46

好,非常好,有源文件就好,下了慢慢研究

wyang 发表于 2007-10-17 11:18

用一次就知道是我想要的

hanyuxinting 发表于 2007-10-17 17:38

刚刚学习中,还没有入门。看代码学习~

bigbyrd 发表于 2007-10-17 20:55

thanks for shareing

该闪就闪 发表于 2007-10-19 11:07

Good!Up!!!

s317667062 发表于 2007-11-8 15:47

这个具体怎么用啊?
能告诉我下吗
谢谢了

s317667062 发表于 2007-11-8 15:48

是放在元件的动作里吗
还是放在帧的动作里?
就放这两上段就可以吗

zxlhome 发表于 2007-11-12 14:29

很妖的东东啊,呵呵,好东西

wbqlove 发表于 2007-11-20 16:35

强烈支持。。。

yinfox 发表于 2007-11-21 10:46

楼组  辛苦

木。 发表于 2007-11-23 14:47

晕~~斌斌~?~??~

xiaoyao221 发表于 2007-11-26 12:57

不错不错

cold5du 发表于 2007-11-27 13:02

FLASH MP3制作全过程 (原创视频) 超详细精炼【原创】


[url]http://dzh.mop.com/topic/readSub_7922045_0_0.html[/url]
以上是视频教程观看地址
大概下载到10%就可以在线观看了

为自己的博客动手设计一个绝无仅有的FLASH MP3播放器吧
不需要任何基础
只需要对着视频操作就可以完成
而且视频讲解非常详细 通俗易懂

看不了的请回贴报个问题 并可以留下自己的QQ号或MSN号
提供在线传

视频文件是FLV格式的  大家嫌在线看不稳定可以下载个FLV下载器
把视频下载回去看

如果需要更多教程可以回帖要  

另外特地附上MP3制作所需的SKIN 图片

看后保证可以自己动手制作

cpfmm2000 发表于 2007-11-28 10:09

强人太多。

页: [1] 2

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.