3D DistortImage Photo Stack

Here is another UI construct that I came up with while playing around with the great DistortImage class that I’ve posted about before. It creates a stack of photos which you can click on to make them center themselves. This involved using both Fuse and some custom onEnterFrame animations. I didn’t take it very far but it could be a cool interface idea. Click on the image to see it in action and you can download the source here.

Lee


Commentary

  1. vamapaull says:

    Super super cool!!!
    That is what I call interface design :D
    I Love the effect!
    Thanks for sharing the sorce files with us :)

  2. lee says:

    It chugs a little in Firefox though. The code would need to be optimized for actual use I think.

  3. Campbell says:

    Very cool, next step is an Itunes like display of album art al la Cover flow, then recieve a cease and desist from apple lol.

    Nice work bro! keep em coming.

  4. Edward McIntyre says:

    lol. Cover flow a esq interface it what I have been building. I havent had much time to work on it with it being thanksgiving up here and Canada. I have almost perfected it, and made a few imporvments to it too!

    Lee it seems like you just cant get enough of that distort image class.

  5. Pixelmixer says:

    Ok, I’ve seen thing thrown around alot. So what exactly do you mean by “The code would need to be –optimized– for actual use…”

    I have some ideas what it means, but is there some specific process you go through in order to optimize the code?

  6. barry says:

    Hey Lee,

    This is brilliant… id love to get this xml driven. Ive installed the fuse mxp (brilliant stuff btw.. time to upgrade for sure) and the sandy classes are in place but I get an error…

    **Error** /Users/barry/Desktop/dianimation/sandy/util/DistortImage.as: Line 238: The same member name may not be repeated more than once.
    public var points:Array;

    Should I be putting your diAnimation.as into the util directory of the sandy classes?

  7. lee says:

    Barry I got the same bug when I started using Sandy. Go to the bottom of the AS file and remove the public var points:Array; line. It is in there twice for some reason. Once you get rid of that it will work.

  8. lee says:

    Pixelmixer: What I mean is to try and find out the code that is making it run kind of slow. I would probably write custom animation code instead of using Fuse since it would run a little faster. And also I would just clean it up and make sure I’m not duplicating code.

  9. barry says:

    thanks Lee worked perfect….keep up the good work.

  10. Hi Lee,

    great as always.. I recognized some things in the handling which I’m not sure if it depends on the DistortImage class or your implementation:

    When clicking an image and afterwards “closing the detail view” the image moves to a slightly wrong place and corrects its position afterwards. Furthermore the rearrangement of the images only happens when hover status of the mouse changes. This leads to the effect that clicking an image, changing the mouse position to another place (meaning hovering another image in the background) and closing the detail image doesn’t move the the image to the correct position. It only starts when moving the mouse afterwards again to another image.

    But as I said: Great effects and nice stuff to start the day with :)

    Micha

  11. Dwight says:

    Great as always ;)

  12. xeonarno says:

    Hi lee,

    Thank you for this cool Photo Gallery. I will do a new one for me.
    I have an idea. Do you think that is possible to load in the board not a photo but a video and choose a channel ? I will try to do my idea and send you.
    Bye,

    Xeonarno

  13. Utzaki says:

    why is it error on my computer?

    **Error** /Users/baba/Desktop/dianimation/diAnimation.as: Line 41: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    **Error** /Users/baba/Desktop/dianimation/diAnimation.as: Line 51: The class or interface ‘sandy.util.DistortImage’ could not be loaded.
    this["di"+i] = new DistortImage(this["clip"+i], this["bmd"+i], 1, 1);

  14. Clayton says:

    I’m having the same errors as Utzaki. I noted what Lee said above, taking out the public array, no help though, unless I’m not editing the diAnimation correctly.

    Could someone link the correct source?

  15. agus says:

    Very amazing! I found out your site through Google and your tutorials rock!

    However this one is not working on my end. I installed both fuse and sandy, and there was no error generated, but nothing happens too. Just a simple square picture.

  16. matt says:

    Im getting this same error:

    **Error** C:\Documents and Settings\matt\Desktop\dianimation\diAnimation.as: Line 51: The class or interface ‘sandy.util.DistortImage’ could not be loaded.
    this["di"+i] = new DistortImage(this["clip"+i], this["bmd"+i], 1, 1);

    Was this class not included in the source files?
    where do I find it?

  17. Ben Cline says:

    Nicely done Lee. This reminds me of a recent FWA award winner’s navigation. http://www.mstudio.com/mstudio.html

  18. gareth says:

    Hi,

    does anyone know how to tween the distortimage class using the mx.transitions? i cant get it working.

    cheers,
    G

  19. sphin says:

    damn sweet.

  20. matt says:

    I ask again why does this not work for some?
    can you repackage the entire downlaod with all the needed files?

  21. Jerry says:

    Another excellent work! Your tutorials never cease to amaze me. How can I use different images using XML similar to that of the Carousel? Why not include this in your tutorials at gotoAndLearn? Hope you grant this request. Thanks.

  22. From the source is seems to be using the sandy3d api as well
    import sandy.util.DistortImage;
    so you need Fuse and the Sandy3d package for this app.

    cheers
    firdosh

  23. ignac says:

    Hi Lee, a have this error when open the example:

    ——————————————–
    diAnimation.as: Line 41: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();
    ——————————————–

    and 6 errors more :S

    The configuration is ok?:
    *Actionscript: 2.0
    *Flash Player: 8

  24. matt says:

    where can you download Sandy3d ?
    link?

  25. Thomas P says:

    @matt > Sandy is available for download at http://www.flashsandy.org as noted Özgür.

    @Michael > Don’t think this problem comes from my class. But if you find any bugs like this, please do a feedback in oder to fix it as soon as possible.

    @lee > I’ll fix the public property problem in the enxt release of Sandy, which should be anytime soon :)
    Good work !

  26. datura says:

    Sorry to sound ungrateful but why can’t lee or anyone who has actually got this working just archive all the files needed [zip/rar/sit, whathaveyou] together and provide a link for them?

    I’ll even host it if you want.

    I mean, this is an open-source orientated site isn’t it?

  27. sectore says:

    Lee,

    thanks for sharing your pretty example, it’ s great :-)

    Tip: You can use Fuse’s updfunc property (http://www.mosessupposes.com/Fuse/fuse2.0docs/com/mosesSupposes/fuse/Fuse.html) to execute the setTransform method of the DistortImage class. So you don’t need an nested onEnterFrame event on your “rel” and “closeit” functions – for an positive effect on the performance ;-)

    [CODE]
    // an example for the “rel”-function
    // 1. complete your code at lines 73 like this
    f.push([{target:base.tran, x1:obj2.x1, y1:obj2.y1, x2:obj2.x2, y2:obj2.y2, x3:obj2.x3, y3:obj2.y3, x4:obj2.x4, y4:obj2.y4, time:1.5, scope: this, updfunc: "updateTransform"},
    // 2. Delete your nested onEnterFrame function
    // 3. And use your own updateTransform function outside of the functions mentioned above ;-)
    function updateTransform (): Void
    {
    this.di.setTransform(base.tran.x1, base.tran.y1, base.tran.x2, base.tran.y2, base.tran.x3, base.tran.y3, base.tran.x4, base.tran.y4);
    }
    [/CODE]

    Best,
    sectore

    http://www.websector.de/

  28. Flashnut says:

    How can you put different images in it ?
    Thank you !

    -Flashnut

  29. Gareth says:

    Sectore is there any chance you could post a nice simple and complete example of your code?

  30. JoeValachi says:

    Please ! Tell us how we can put different pictures in it ! Please !
    Thanks !

  31. Please ! Could you Tell us how we can put different pictures in it ! Please ! Is a wonderfull system to use in a menu (for example)

  32. tommib says:

    Instead for using as a photo show you could make a great menustyle

  33. Otto says:

    Hey Lee, c’mon we need more updates this one’s been on for too long.

  34. omar says:

    hi, i have sandy and fuse in my folder, but have this error.

    **Error** /Users/tomato/Desktop/dianimation Folder/sandy/util/DistortImage.as: Line 238: The same member name may not be repeated more than once.
    public var points:Array;

    Total ActionScript Errors: 1 Reported Errors: 1

  35. omar says:

    my problem UPDATE:

    ok, i can run the movie with my error.

    in the DistortImage.as

    in line 238 ( public var points:Array; )

    i put the // for comment the line. and the movie now run well.

    i dont know what i do but it run now. haha

  36. Michel says:

    Dear all,

    This swf is amasing! But like some others here it would be great to load in some other pictures too. I was trying to do this through XML but it didn’t seem to work nice.

    I hope some of you have the knowledge to “pimp” up this Cool feature. I also put on an subject on the GTAL forum: http://www.gotoandlearn.com/forum/viewtopic.php?t=6338&highlight=distortion

    Respectfully,

    Michel Elings

  37. Dear All,

    I altered the code to support multiple pics and an XML document. But, somewhere in the code the size of the pics seems to be hard-coded. Hmmm, spent too much time on it already. You guys have fun checking out the chicks …

    http://www.exploredigitalbeauty.com/dianimation
    http://www.exploredigitalbeauty.com/dianimation/dianimation.zip

    Peace.

    B

  38. Ashley says:

    Dear All,

    I just wanted to say thanks to every body out there that shares there code and contribute in helping other people out. I was also wondering if anybody knows how to get a preloader working with this photo Gallery.

    Thanks,
    Ash

  39. Pete Manning says:

    Love this – think the coverflow idea is excellent – a online mp3 player where the user chooses an album cover and the tracks to play…

    Only problem for me is that I am still learning Flash so if anyone can kick start me in the right direction.

  40. imad osman says:

    can’t believe it fantastic.

  41. steve says:

    i am also receiving the error…
    **Error** C:\Documents and Settings\Steve\My Documents\Web misc\ituneslikegallery\sandy.util.DistortImage\diAnimation.as: Line 41: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    any help would be great. Thanks

  42. Olivier says:

    Great job

    but I wonder how to load automatically photos(from xml files) without the button (like the first gallery with the same image). If you put buildStack outside from the button code, it doesn’t work.

    Thank’s

    Olivier

  43. Daniel says:

    Hi,

    my problem is, when i remove the ‘public var points:Array;’ on line 238 of ‘DistortImage.as’, items won’t resize after one has been clicked…

    And: Was the DistortImage.as removed from Sandy 1.2 beta, or am I just to blind?

    Regards,
    Daniel

  44. Frank says:

    I have the same problem as Daniel. Even when I use the example and publish it without changing anything (except for removing line 238 in order to make it run…) the pictures scale and move a round in a strange way. Is anybody experiencing the same problem?

  45. Miker says:

    That is just awesome man!

    I just finished a flash site with my first Flash Blog. Do check out man! http://www.icknike.com

    Miker

  46. sorcier says:

    Hi

    Thank’s for your talent and sharing, i’m looking for the
    class DistortImage and i dont know where to look 4

    thanks

  47. Andy says:

    I have the same problem as 45.Daniel and 46.Frank – any ideas? Great idea btw.

  48. joe says:

    This is crap. Unless you can actually provide something hat works, don’t waste our time with it.

  49. lee says:

    Joe, maybe I can come to your house and hold your hand while I show you how to do it. Or maybe you can take some initiative and figure it out for yourself.

  50. sefoo says:

    Hi Lee,
    because still nobody came up with a better solution for resizing and calculating of dynamically loaded pics, i throw in my crapy try.
    still far away from final.

    here is the src-zip : http://fuchs.dummymail.de/nina/diani.zip

    here is how it should look like: http://fuchs.dummymail.de/nina/diani.html

    and another (final) solution: http://fuchs.dummymail.de/nina/index.html

    and a test application to calculate the perspective values:
    http://fuchs.dummymail.de/nina/test.html

    to get this running (on your local machine) you need to:
    - change the classpath settings (under file/publish settings/flash) to point to your local fuse/sandy3d installation

    optional:
    - create your own xml picture file
    - change the two variables “xmlFile” and “imageDir” (in diani.as line 12 and 14) to point to your local settings

    - or you can just call Lee to hold your hand ;)

    thanks a lot for your great blog and all these awsome ideas.

  51. Dimas says:

    Had the same prob as daniel, in the diAnimation.as file on line 163 i added the following:

    … line 163
    [CODE]
    if(base["clip"+i] == who) continue;
    [/CODE]

    another issue i had was the timing in the swapping of the “clicked on” photo back behind the others, this happens on line 89. For some reason Fuse doesnt run those arrayed actions simultaneously (as i think it should), but if i place the following arrayed object:

    … line 89
    [CODE]
    {func:function(){this.swapDepths(this.num);}, delay:0.3, scope:this}
    [/CODE]

    .. as the first object in the list it gets executed correctly.

    also, i didn’t like how the photo can back into place, then moved itself back about 100 pixels so i modified line 90 as such

    … line 90
    [CODE]
    {target:this,x:this.x-100, y:150, time:1.1, controlX:500, controlY:50}
    [/CODE]

    … granted i just played around with things and a few numbers so im still learning what does what an so forth.

  52. Brian says:

    Nice work sefoo!

    I saw your version online and tried it, no errors. I download your files and I get the same problem as [Comment #10 Michael Kraus] I am using FUSE 2.1.1 and Sandy 1.1

    What versions are proven to work?

  53. Steve says:

    [comment #38 Brian Russel Davis]

    I`m getting this error

    Line 84: The class or interface ‘sandy.util.DistortImage’ could not be loaded.
    this ["di" + i] = new DistortImage (this ["clip" + i], this ["bmd" + i] , 1, 1);

  54. Ben says:

    I have a little problem. I have instalated Fuse 2.1.1r1 and Sandy 1.1. When I copy the SWF from Brian’s Zip (post 38) on my server it works. But, when I compile the FLA given in the same archive and put it on the server, it doesn’t work.
    What is the problem ?
    The diAnimation.as is it needed on the server ?
    Could you explain to us what files are on your server (the SWF, an AS and some libraries maybe…)

    Thank you for everything

  55. Brian says:

    I upgraded to Fuse 2.1.1r1, still no luck. I also had to comment out the second “public var points:Array; ” in DistortImage.as

  56. Brian says:

    Maybe it is problem with the Macintosh version? Anyone else able to provide anymore details?

  57. Chad says:

    I am having the same problems as described above in regards to images not scalling back after they have been clicked. I am on a Macintosh. The first time an image is clicked it works, however, when you click it again to make is small it does not scale back. See this link to see what I am talking about.

    http://www.thisclicks.net/flash/diAnimation.html

  58. Brian says:

    Chad, your file is behaving the same way as mine. What version of Fuse and Sandy are you using? Does anyone know it is a problem with DistortImage.as ??

  59. jason says:

    Hi, i ‘ve been playing with this files today, i was succesful in getting the swf file to play, but when i ckick on the image in a second attempt, that second image come up smaller and the first image has a hard time going into place
    what is wrong?

  60. corby says:

    #53 has it right – thanks for the tips . . .@Lee – thanks for the idea – I’ve been looking for something like this for quite some time – nice effect

    You could sell it out there ‘cept Apple would probably C and D it . .

    Thanks again!

  61. jens says:

    Hi I have the same probleme like Chad (http://www.thisclicks.net/flash/diAnimation.html)

    I downloaded today the newest Fuse and Sandy Kit, removed the
    // public var points:Array; line in the DisortImage.as File, and i tried both zips:
    http://fuchs.dummymail.de/nina/diani.zip and
    http://theflashblog.com/dianimation.zip

    has someone a idea?

  62. jason says:

    i’ve been working on loading my owm pictures xml file, sefoo’s ideal# 52 above comment. this the error code i got, any ideals?

    **Error** C:\Documents and Settings\Jay Mccue\Desktop\New Folder\sandy_2\core\data\Vector.as: Line 46: The class ‘mb.sandy_2.core.data.Vector’ needs to be defined in a file whose relative path is ‘mb\sandy_2\core\data\Vector.as’.
    {

    **Error** C:\Documents and Settings\Jay Mccue\Desktop\New Folder\DPoint.as: Line 11: There is no method with the name ‘super’.
    super(px,py,pz);

    Total ActionScript Errors: 2 Reported Errors: 2

  63. Keeya says:

    Hi everyone,
    I have read through all these comments and notice that so many of you are having the error

    The class or interface ’sandy.util.DistortImage’ could not be loaded.
    this [”di” + i] = new DistortImage (this [”clip” + i], this [”bmd” + i] , 1, 1);

    I am also having this error. I downloaded the sandy files but I have no idea where to put them in my folders. or in the applications folders of the hard drive? I am confused where to put these files. Fuse automatically installs by clicking on the icon and restarting Flash!! Where does sandy go?

    Thanks!!

  64. Sample says:

    For all the people who have the “this [”di” + i] = new DistortImage (this [”clip” + i], this [”bmd” + i] , 1, 1);” problem:

    Your “sandy” directory has to be outside the “com” directory! It wil probably work then!

  65. flo says:

    Hi everyone, and Hi Lee,

    I would want to put swf instead of jpg, it is ok but my buttons on the swf doesn’t work so can you help me, and give me an idea to resolve my problem, I would want to put just a button to close the page and not on all the clip when you rollover so my buttons could be work…

    Sorry for my bad english, I am french… I hope you understand…

  66. Topher says:

    Thanks, lee, for the great code to use as a starting point. I am sorry that some comments are less than positive. I have been using Flash for all of about 2 weeks and enjoy the test of trying to figure these things out. Finding a starting point and researching different ways to manipulate the code for my own desires is very fulfilling.

    For all of the image resizing issues when you close a selected image, Dimas (#53) was on the right track, except it took me a minute to find exactly where the code needs to go. In diAnimation.as near line 162 (may be slightly different based on individual edits) you will see:

    [CODE]
    for(var i=1;i

  67. vivi says:

    I had the same problem, as jens and others. Does anybody has Fuse 2.0 or Fuse 1.1? Could you please send it to my email box if you got it? (my email is vivi.xy at gmail.com) Thank you!

  68. Topher says:

    Looks like some code got cut from my previous post…to fix the image resizing issue, in the .as file, in the last function (unscaleTheRest) near line 163…change

    [CODE]
    for(var i=1;i

  69. Topher says:

    Last try…

    insert
    “if(base["clip"+i] == who) continue;”

    before
    “fa.push({target:base["clip"+i], y:150, scale:100,time:1.5});”

    within for statement in unscaleTheRest

  70. Xeonarno says:

    Hi everybody,

    The problem :

    **Error** /Users/baba/Desktop/dianimation/diAnimation.as: Line 41: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    Solution :

    Download Fuse version 2.0xx
    http://www.mosessupposes.com/Fuse/

    The Problem :

    **Error** /Users/baba/Desktop/dianimation/diAnimation.as: Line 51: The class or interface ’sandy.util.DistortImage’ could not be loaded.
    this[”di”+i] = new DistortImage(this[”clip”+i], this[”bmd”+i], 1, 1);

    solution :
    http://www.flashsandy.org/

    Download the sandy (engine 3D animation for flash) and install it ( you just have to put to root file of sandy in the same folder of your animation

    The problem :

    When I click on a photo and click again, the animation fails and my photo doesn’t retrieve its starting scale.

    Solution :

    on diAnimation.as :

    [CODE]

    function unscaleTheRest(who:MovieClip):Void
    {
    trace(“unscaleTheRest”);
    var f:Fuse = new Fuse();
    var fa:Array = new Array();

    for(var i=1;i

  71. Xeonarno says:

    New Post : sceen problem

    Hi everybody,

    The problem :

    **Error** /Users/baba/Desktop/dianimation/diAnimation.as: Line 41: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    Solution :

    Download Fuse version 2.0xx
    http://www.mosessupposes.com/Fuse/

    The Problem :

    **Error** /Users/baba/Desktop/dianimation/diAnimation.as: Line 51: The class or interface ’sandy.util.DistortImage’ could not be loaded.
    this[”di”+i] = new DistortImage(this[”clip”+i], this[”bmd”+i], 1, 1);

    solution :
    http://www.flashsandy.org/

    Download the sandy (engine 3D animation for flash) and install it ( you just have to put to root file of sandy in the same folder of your animation

    The problem :

    When I click on a photo and click again, the animation fails and my photo doesn’t retrieve its starting scale.

    Solution :

    on diAnimation.as :

    [CODE]

    function unscaleTheRest(who:MovieClip):Void
    {
    trace(“unscaleTheRest”);
    var f:Fuse = new Fuse();
    var fa:Array = new Array();

    for(var i=1;i 10;i++)
    {
    fa.push({target:base["clip"+i], y:150, scale:100,time:1.5});
    //trace(“Taille clip”+i+” sur X =”+base["clip"+i]._width);
    //trace(“Taille clip”+i+” sur Y=”+base["clip"+i]._height);
    }
    f.push(fa);
    f.start();
    }

    [/CODE]

    Insert the line “if(base["clip"+i] == who) continue;”

    [CODE]

    function unscaleTheRest(who:MovieClip):Void
    {
    trace(“unscaleTheRest”);
    var f:Fuse = new Fuse();
    var fa:Array = new Array();

    for(var i=1;i 10;i++)
    {
    if(base["clip"+i] == who) continue;// here
    fa.push({target:base["clip"+i], y:150, scale:100,time:1.5});
    //trace(“Taille clip”+i+” sur X =”+base["clip"+i]._width);
    //trace(“Taille clip”+i+” sur Y=”+base["clip"+i]._height);
    }
    f.push(fa);
    f.start();
    }
    [/CODE]

    bye everybody

  72. manu says:

    Hi everybody,

    Very good work Lee!

    Sombody knows how to put a link different on each photo?

    Thanks for your help…

    Sorry for my bad english (I am french)

  73. assive says:

    This is very nice but only if it works. It simply doesn’t work, like all the others said above error msgs!!!
    How does one install that “sandy” file??? There’s about a million different files in the .zip. Why so complicated?!

    Anywayz, looks great. Good job!

  74. Thompson says:

    To install sandy, copy the sandy folder, that u found in the downloaded .zip. And copy this to the following path:
    C:\Documents and Settings\Your Name\Local Settings\Application Data\Macromedia\Flash8\lang\Classes\ *sandy folder goes here*
    lang stands for language, in my case this is en for english.

    For more information check:

    http://www.petitpub.com/labs/media/flash/sandy/primitives.shtml

    Lators

  75. Amit says:

    Hi,
    Would anybody be kind enough to supply the files with the classes inside??
    Apparently the classes needed are from past versions of Fuse and Sandy, that’s the source of most of the problems here (besides the class path configuration)..
    It Will Help A Lot !!!
    Thnaks :) !

  76. Davide says:

    Hi guys, any idea to put videos instead of photos?
    I tried to put a flvplayback but i can’t see it when launch the animation…
    Thanks

    Davide

  77. gidabi says:

    Hi Lee,

    do you know how to fix the little ugly bug on the distorted image? you know, you can see it at the edges of top and bottom.

    thx

  78. Jackie says:

    Thank you for your help Xeonarno!! Downloading Fuse version 2.0xx fixed my problem!

  79. trish says:

    hi i read this whole string and did not notice if this ever got answered… to avoid all the errors and bugs and confusion..
    Would anybody be kind enough to supply the files with the classes inside??
    Apparently the classes needed are from past versions of Fuse and Sandy, that’s the source of most of the problems here (besides the class path configuration)..
    It Will Help A Lot !!!
    Thnaks :) !

  80. DWG says:

    I’ve tried everything on these comments. I can’t even get the photo’s to animate. Just a black screen. So, please let someone upload the files with classes all together. Tried, both 1.1 and 1.2 of Sandy. Had a older version of Fuse, just downloaded the latest copy… nothing. I love the concept and would like to take it a bit further, but nothing…

  81. Ralph says:

    Checkout my website and click: “Fler bilder” and choose “2004″.
    Click the big button.

    I want to be able to load the pictures without clicking the button. Does anybody know how? I have tried many different methods but can’t get it to work. Thought that just starting the buildStack function would work but no. The array of pics loads and buildStack function runs 7 times but no picture shows. With the button – no problem. What the heck is the difference??

    Thanks Lee for the function anyway, super..

  82. Ricardo says:

    the code has onRolloutOut=out but where is the function?

  83. Tim says:

    Ok, so before anyone reads my question and comes to this conclusion on their own, I am a dumb ass who really doesn’t know squat about action scripting and I’ve never even heard of Flex or Sandy.

    That being said, I really, really want to learn how to do this Photo Stack thing, but I am currently clueless as to how to do it. I am using Flash MX to build a site for friend of mine, and she saw your sample and asked if I could do it for her picture gallery and I said yes (like I said “dumb ass”).

    Any help I could get would be greatly appreciated.

    Thanks

  84. Tim says:

    Actually, I’m using Flash 8, not MX.

  85. Mark says:

    Is there a way to preserve the alpha channel of an imaged using this method? I’ve been playing with this all day and so far it’s pretty awesome. However, I’m trying to incorporate it into a piece that has images that are semi-transparent and have a glow around them. The alpha channel gets lost though.

    Any suggestions? I think it might have something to do with the BitmapData but don’t fully understand that class yet.

    Please advise.

    Thanks,
    Mark

  86. Ryan says:

    Thanks Lee very much! Good work.

    Finally I got it working.

    I am using Flash8 and installed Fuse2.1.3 and Sandy 1.1(comment out the “public var points:Array;” at the end of the DistortImage.as)

    However, still need to fix some effect errors..

  87. shashi says:

    i was downloand standy but i cant able to reach the watch final result of this example on my com, when i run animation following error have come

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 41: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 51: The class or interface ‘sandy.util.DistortImage’ could not be loaded.
    this["di"+i] = new DistortImage(this["clip"+i], this["bmd"+i], 1, 1);

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 72: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 87: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 124: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 160: The class or interface ‘Fuse’ could not be loaded.
    var f:Fuse = new Fuse();

    Total ActionScript Errors: 6 Reported Errors: 6

  88. shashi says:

    Dear Lee,
    Pleas help me about how to load Sandy,
    Because when i run the project i will got the Eror like

    The class or interface ‘sandy.util.DistortImage’ could not be loaded.

  89. Fabio says:

    Hi everyone!

    I didn’t find the DistortImage.as inside the folder util on my sand directory. so I took one from the web and I’m getting this error:

    The class being compiled, ‘DistortImage’, does not match the class that was imported, ‘sandy.util.DistortImage’.

  90. Peter says:

    Hi!
    The class is great and I have tried to build a cool image gallery with reflections and all, based on it. It’s really cool (at least I think so) but after some browsing it gets really slow, and so does my flash site holding the clip. I think it’s because I create a new DistortImage with each change of picture, but I’m not sure. I’ve tried to remove the previous DistortImage objects with various commands (such as “delete my_di”) but it doesn’t seem to free up any memory. Would someone please check it out and try to solve it? Depending on how fast your machine is, you’ll have to click about 10-20 times before you notice any lag in the image transitions.

    .fla: distortmovieimovieclip.fla
    .swf: distortmovieimovieclip.swf

    I would really want to solve this…
    Thanks

  91. Desi says:

    Hi,

    This looks like a well executed function of the class. However the DistortImage.as file isn’t actually in the downloadable zip file.

    Any pointers please?

    Cheers!

  92. Hi lee, this is fab, just wondering if im missing a class or something, as it seems to be working but when you click on one of the images, it expands as it should do, and the other images move back in perspective, but when you click on the image to reverse the process, it looses its place and the background images stay small instead of returning to there original size like so:

    http://www.gustorecordings.com/tester/diAnimation.swf

    any ideas?

    thanks in advance!!!

  93. or could it be im using a different version of fuse?

  94. Aurelia says:

    Please Brian Russel Davis….

    Brian Russel Davis
    November 3rd, 2006 | 5:31 pm

    Dear All,

    I altered the code to support multiple pics and an XML document. But, somewhere in the code the size of the pics seems to be hard-coded. Hmmm, spent too much time on it already. You guys have fun checking out the chicks …

    http://www.exploredigitalbeauty.com/dianimation
    http://www.exploredigitalbeauty.com/dianimation/dianimation.zip

    Post DistorImage.as :-( ((( Thank’s

  95. Clau says:

    I want to thank everyone who has commented and Lee who posted this distortImage example. This is what I’ve been looking for weeks now! Thank you!

  96. Desmond says:

    I am having the same problem too

    >>Hi everyone!

    >>I didn’t find the DistortImage.as inside the folder util on my sand
    >>directory. so I took one from the web and I’m getting this error:

    >>The class being compiled, ‘DistortImage’, does not match the class
    >>that was imported, ’sandy.util.DistortImage’.

    Does anybody have answer for that?

    Thanks a million

  97. Max says:

    Good morning,

    same problem here as well: no DistortImage.as suites to the issues. It really looks like the DistortImage.as was deleted from the Sandy_1_2-package. So I tried the Sandy_1_1-package, but it created another error. Using the 1.1-DistortImage.as with the 1.2-package wasn’t successful either.

    Finally I tried all 3 AS2-packages, but none of them worked with the provided FLA. So disappointing… =o(

    Anyone here found a solution or a workaround for that?

  98. RandyK says:

    Try this one. I Googled DistortImage.as until I found one that worked…

    http://arie.corks.nl/PROJECT/WOWvx%20Demo/sandy/util/DistortImage.as

  99. whitesites says:

    Thanks for the source code. What others are selling as prefabricated components for $80+ you give away so others can learn. Thank you!!

  100. Dominik says:

    The preview don’t work for Mac (Safari 3)….

    Check that!

  101. adam says:

    hello all

    ok so i finally figured out thsi problem. for anyone getting a error message:

    **Error** C:\Documents and Settings\user\Desktop\dianimation\diAnimation.as: Line 51: The class or interface ’sandy.util.DistortImage’ could not be loaded.
    this["di"+i] = new DistortImage(this["clip"+i], this["bmd"+i], 1, 1);

    the solution is to go and download sandy v 1.1

    unpack it and take the sandy directory and install in in the same folder as your flash fla file.

    if you need to check go into sandy, then go to util, you should see the distortimage.as file there.

    you can download v1.1. here:

    http://www.flashsandy.org/download

    after i did that, i had the problem mentioned way earlier at the beginning, and all i did was to remove the remove the public var points:Array; line on line 238 and it worked!

    thats as lamans as i can put it! hope it helps

  102. balajiks says:

    Super super cool!!!
    That is what I call interface design :D
    I Love the effect!
    Thanks for sharing the sorce files with us

  1. [... Here is another UI construct that I came up with while playing around with the great DistortImage class that I've posted about before. It creates a stack of photos which ...]

  2. [... Here is another UI construct that I came up with while playing around with the great DistortImage class that I've posted about before. It creates a stack of photos which ...]

Leave a Comment