grid_00311

Hello, thanks for view my website.

I am tring to make the site in such a way: website + blog. I hope the mode can be accepted by medium and small-sized enterprises, design studios or SOHO persons… I know well that they need a website to show their products, projects,desgn works, and so on, and a blog to record and show their news, work schedules, design blog,  even their feeling, but they are not willing to spend to much money in it, and also not willing to hire a professional team/administrator to builds and maintains their website and blog. So I think it might be a good idea to re-develop website and blog  for them on an existing platform.

Now I am doing that. Please explore the website and blog, you will see that the gallery is a good way to publish your products and projects. It is beatiful and strong, and is also easy to use, and the most important thing is: a studio or SOHO persons can afford it.

What we can do in such a website?

  • Firstly, you can select a theme which you are like for your website, or require to design a new one as your Corporate Image.
  • Add pictures and assemble them to galleries, and galleries could be . you can append description words for  each gallery and picture.
  • Add videos in any web page blog.
  • Add music in any webpage and blog.
  • All pictures, videos and music could be used in any webpage and blog with freedom, that means the assets you uploaded could be used repeatedly.

……..

The website-blog is not completed yet (I mean the content only), most of the pictures and text is just for test, so please ignore them, what you need to focus on is the mode, the function.

Shadowbox-js可以显示单个/多个图片或Flash或视频的gallery,显示有resize和fade效果。
支持格式:图片,Flash,视频(QuickTime, MPEG-4, Windows Media, YouTube, Google Video )。

调用代码示例:
<a href=”myimage.jpg” rel=”shadowbox”>My Picture</a >
<a href=”myimage.jpg” rel=”shadowbox” title=”My Image”>My Image</a>            //在Shadowbox上部同时显示图片Title
<a href=”mymovie.swf” rel=”shadowbox;height=140;width=120″>My Flash</a>          //非图片内容要指定高度和宽度
<a href=”myimage.jpg” rel=”shadowbox;options={animate: false}”>My Image</a>       //指定选项(Options,也就是控制面板里的那些选项)

如果要把某些链接组成一个Gallery来显示,必须将这些链接指派给一个Gallery(方括号里的是Gallery名称)。
下面代码把两个链接组成一个名为Vacation的Gallery:

<a href=”beach.jpg” rel=”shadowbox[Vacation]“>The Beach</a>
<a href=”piere.jpg” rel=”shadowbox[Vacation]“>The Piere</a>

如果Gallery是由不用格式的内容组成的混合gallery,要用[Mixed]参数作为Gallery名称:

<a rel=”shadowbox[Mixed]; options={counterType:’skip’,continuous:true}” href=”mypic.jpg”>My Picture</a>
<a rel=”shadowbox[Mixed]; width=520; height=390″ href=”caveman.swf”>swf</a>
<a rel=”shadowbox[Mixed]; width=292; height=218″ href=”kayak.mp4″>movie</a>
<a rel=”shadowbox[Mixed]; href=”index.php”>iframe</a>

下面代码把日志编号为116的页面里的图片组成一个Gallery(使用了player参数将会忽略该参数指定格式以外的其它链接)
rel=”shadowbox[post-116]; player=img;”

player参数值:
img - gif, jpeg, png
swf - 在Shadowbox里播放swf
flv - 调用 JW FLV Player 播放flv
qt - 用QuickTime的浏览器插件播放mov视频
wmp - 用Windows Media Player 播放wmv视频
iframe - 在一个iframe里显示HTML内容(用于播放YouTube和Google视频和外部网页)
html - 在Shadowbox里显示HTML纯代码,用于显示内嵌的表格或表单

众所周知(如果不知请面壁呵呵),flash11虽然还没正式发布,但测试时期已经让flash3der大为振奋,大有扬眉吐气之感。但是,很多新人其实还是不太理解目前flash3d业的新的格局。就算是不太上群的我,也常常见到群里互相误导的言论。 所以这次抽时间,专门分析一下到目前2011年flash3d的真实情况,和未来flash3d界可能发生的前瞻。请以后在群里争论的朋友们直接观看这篇了解即可。

从大爆炸到现在是这样的历史。 flash8是flash3d的冰河期,大家还只能模拟8位机上开赛车那种远大进小的假3d,这个时代最强悍的范例是一个3d操场全景照片的模拟,不知道现在还能否找到,不过那个就是flash界一次看到了3d的光辉。

到了flash9,as3语言下终于可以完成完整的面对对象引擎,所以也出现了大量的组织和个人制作3d引擎,这里面最著名的就是大家天天都会提到的papervision3d, 也就是pv3d。国内由于我们研究所当年的热心推广,目前是国内人人必学的上手引擎。pv3d是一个正统三维技术大混杂,其源代码里涵盖了老一辈flash3d的创意和精华。直到今天,我们研究所任然推荐想真正进入到3d核心开发的朋友从pv3d开始学习。这个时期受到pv3d的影响而衍生出的引擎有,away3d, sandy, 物理引擎wow. 在这个时代还没出现国人开发的引擎。另外遗憾的就是pv3d在这个时代结束后,由于组织性领导性的不给力,没有出正式的新版了,所以不要讨论pv3d是不是比away3d效率高,flash9和flash10能比,推荐别人商用中使用pv3d不是坑爹是什么呢。

到了flash10时代,这是个狂热又怯懦的时代,狂热是flash10的效率总算能出现些有趣的3d应用,怯懦的是不知道未来到底走向何方。能结合C++提升速度的alchemy项目? html5会毁掉flash? 其他网页插件引擎会超越flash? google的O3d是不是超潜力?silverlight是不是也要支持3d加速?flash11到底支不支持3d加速? 那么我们看看天天担心这些的人,和一开始就努力坚持学好flash3d的人,现在哪个技术更好呢?我们不用说大家也知道。

这个时代涌现了大量的新引擎,也消失了上一代的支柱pv3d, 以及sandy。 这个时代的引擎:

away3d:完美的组织和分工的免费组织,造就了这个穿越历史不断进化的引擎。flash11时代的开源范本。
awaylite:本身为了在手机上使用,编译后的文件体积非常小,但引擎非常不完整,后来就停止开发了。 作为研究所会员您应该知道一个小常识是,研究所的根基代码就是出自这个引擎,但目前已经被完善成强悍的完整引擎了,被使用在开发包和其他各种研究所应用中。研究所目前也在整理成flash11的版本。
alternative3d:来自俄罗斯的恐怖技术组织,向世人证明着能盈利的组织才能保证自己技术的完整,顶尖和服务的负责。flash11时代的商用首选。
flare3d:南美兄弟的新生flash引擎,一开始就已盈利和保护技术为目标,所以普及上遇到很大困难。小巧,易用且完美的引擎。 flash11时代的黑马。
NewX3d:国人草衣熏个人开发的引擎,充满着国人的希望。阿草也是flash3d界的代表人物。阿草仍然充满希望的窥探着下一代引擎,也在我们研究所群里熏陶一批批flash3der。
Zero3d:国人怀念从前个人开发的又一个强悍引擎,可惜身不逢时的处在flash10的这个引擎大跃进时代,所以还是成为一个未能推广起来的引擎之一,不过却是一个磨练自己技术的精美作品。
alchemy3d:国人开发的最强引擎,牛牛猪和怀念从前结合alchemy系统,把flash10时代的引擎提高到了接近未来flash11的效率。可惜由于无法抗锯齿,且adobe后来并不给力alchemy项目,alchemy3d的开发也让人心灰意冷的结束。这2位英雄也任然在研究所的群里熏陶着flash3d新人。

flash11时代现在虽然还没正式到来,但是大家已经能从视频和测试版中窥看到其实力的强大。但flash3der要注意的是,flash11并不能像现在那种烧显卡单机游戏的新世代ps3,xbox360这类效果相比,只能说能大概达到上世代的ps2,xbox游戏机的显示效果。制作方面并非很多朋友认为的无限可能,而是任然遵循游戏界对模型对效率的严格要求。

flash11的普及方面,也不应过于乐观,毕竟现在很多人还在使用flash9, 那么经验来讲,至少要到2012年初,flash11才会开始慢慢普及安装。 真正要出现flash3d如火如荼的时代也要2013年。另外,大家一直喜欢争辩的html5webGL也并不对flash11构成威胁,所以5年以内应该都会维持类似的格局。

引擎方面,当然是可以期待更多种类的引擎,包括目前的插件引擎商unity3D等等都可能加入到flash11这个普及类播放器的行列中来。所以现在讨论什么引擎未来有前途,完全是浪费时间,根本就不可能预知到。因为我们是三维图形业的过来人,flash3d界现在发生的事情,都不过是三维图形业或者很多其他行业发展的复制而已。所以我们强烈建议作为应用型,或者新人flash3der,现在唯一能做的学好一个引擎,基本的三维图形知识和面对对象设计。 未来怎么样不确定,我们都能保持自己有能力很快上手,并且有不输于其他任何人制作内力和经验。
新的时代中,请大家继续加油,研究所会一如既往的与您同在~

转贴:DDM君 , Flab3D.com 2011-04-18,

Tags:
,

由于Adobe Stage3D API(即之前的Molohill)的发布,很多有志于Flash 3D开发的程序员一时不知如何切入这块日后必将大放异彩的领域。由于Stage3D提供的是底层的3D接口,代码几近于汇编语言,直接用以开发项目并不现实,也不经济,所以选择哪个Flash 3D引擎也就成了广大求学者面临的问题。尤其是Adobe自己发布了基于Stage3D接口的3D技术框架Prosenium,到底学习Adobe原生的3D技术,还是学习第三方开发的引擎?相信很多人还像伊索语言中不知道吃那块草地上草的羊一样在徘徊。

经过对Adobe官方网站相关信息的仔细阅读,可以确知至少到目前为止,Proscenium还是个比较初级的东西,做游戏肯定是不行的了,Adobe也声明Proscenium框架主要用于展示Stage3D的潜能,也就是说是一种技术营销工具。

下面是Adobe Libs官方网站Proscenium的FAQ译文(译于2011-10-19,转载请注明出处:http://www.flashare.net 译者aswind)。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

◇ Proscenium是什么?

“Proscenium”是Adobe高级技术实验室开发的一个研究性项目的代码的名称,实验室用此来展现Flash平台Stage3D接口(即Molehill)的威力。发布Proscenium是为了让用户体验在Flash中使用3D内容的易用性,并借此收集用户对Stage3D接口的反馈信息。欢迎试用并请将其运行情况、功能设置、改进建议等反馈给我们,并告诉我们改进版本时我们应该更关注哪一方面应用。

Proscenium预览版是演示性软件,故Adobe并不提供技术支持,并且可能存在缺陷。同时请注意作为一个研究性项目,Proscenium并不保证将来一定会有公开发售版本推出。

◇ 试用Proscenium需要什么条件?

要开发或运行使用Proscenium的内容,必须安装beta版的Adobe Flash Player 11。

◇Proscenium系统要求是什么?

Proscenium对系统的要求和Flash Player 11对系统的要求一样,请参考:
http://www.adobe.com/products/flashplayer/tech-specs.html

◇ Stage3D是什么东东?

Stage3D包含一套底层的、支持GPU硬件加速的3D接口,它将使用户能通过Adobe Flash平台运行时获得先进的3D体验。这些新的底层接口将为高级3D或高级3D引擎开发者利用GPU硬件加速获取可观的性能表现提供更大的灵活性。

[转载请注明原博客:http://www.flashare.net/blog/ 译者aswind]

◇ Proscenium关注点是什么?

Proscenium的关注点是单个物体(应该指高模3D物体吧)或集群小物体的高质量渲染,包括灯光、着色器、光反射和阴影。Proscenium倾向于用于加快原型开发,或最终内容侧重于简单显示而内容交互由Adobe Flash Builder实现的项目。

◇ Proscenium是个游戏引擎吗?

Proscenium的易用性或许也适用于开发一些简单的游戏,但是我们并不希望它阻碍第三方开发的高端游戏引擎的发展,或与其进行直接的竞争。

◇ Proscenium支持那些格式的模型?

目前的模型加载器能加载COLLADA和OBJ格式模型,同时也有一些创建基本物体(如方块、球体、立方体)的常规程序。

◇ Proscenium支持那些格式的图片?

目前支持的格式和Flash Player一样。包括.PNG,.GIF和.JPEG。此外,Proscenium也支持.TGA和TIF格式的图片。

◇ 支持那些功能和应用?

除了加载和渲染3D物体等核心功能外,Proscenium还支持基于样条(spline-based)和基于代码的动画,包括角色的骨骼动画。这或许能说明Proscenium可用于多媒体教材或简单的故事讲述型项目开发。

英文原文:http://labs.adobe.com/technologies/proscenium/?tabID=details#tabTop

Tags:
, , , , , ,

做Flash的时候,各种Tween引擎几乎让我们能随意挥洒舞台上的各种图元,主流Tween引擎傻瓜化的设计让程序员在节省大量时间的同时又能随意创造出各种炫目的动画。

现在做XNA游戏,才体会到没有Tween引擎的日子是多么的痛苦,仿佛一下子回到了原始社会,做任何东西都需要用简陋的石器一点一点慢慢地修刮,想要做灵动炫目的动画几乎就是个遥远的梦。用搜索引擎搜索了一下,并没有找到任何与之相关的Tween引擎的信息。XNA推出了那么多年,居然没有任何人为它 编写Tween引擎,看来只能怨微软商品(商业品德)太差了。

只有自己动手了。由于XNA中很多数据类型和Flash截然不同,所以改写他人的Tween引擎会有诸多不便,所以我的方法是仅仅把TweenMax中的14个easing公式抽离出了改写成C#,然后自己写了个静态类来调用这些公式。这样做的一个好处是该类撇开了数据类型,只做纯粹的数据运算,所以极端灵活,任何数据类型(如XNA中的Vector3,Color)经过分解后都可以使用此类计算Tween,可以说是个万能的Tween计算工具了。由于只使用了Tween的数学模型,而所有计算机语言处理同样一种算法的时候使用的数学模型是相同的,所以理论上这种方法只需稍加修改即可应用于任何一种计算机语言。当然,弊端也是明显的,就是无法像那些Flash的Tween引擎一样进行傻瓜化的使用了。不过比起手写代码,已经强了几千几万倍了(转载请注明出处www.flashare.net)。

using System;

namespace flashare
{
public static class Easing
{
public enum Mode
{
linear,
easeInQuad, easeOutQuad, easeInOutQuad,
easeInCubic, easeOutCubic, easeInOutCubic,
easeInQuart, easeOutQuart, easeInOutQuar,
easeInQuint, easeOutQuint, easeInOutQuint,
easeInSine, easeOutSine, easeInOutSine,
easeInExpo, easeOutExpo, easeInOutExpo,
easeInCirc, easeOutCirc, easeInOutCirc,
easeInBounce, easeOutBounce, easeInOutBounce,
easeInElastic, easeOutElastic, easeInOutElastic,
easeInBack, easeOutBack, easeInOutBack,
easeInStrong, easeOutStrong, easeInOutStrong
}

public static float GetTween(int tick, float start, float end, float duration, Mode easingMode)
{
if (tick > duration) {
return end;
}

float distance = end - start;

switch (easingMode) {
case Mode.linear: return linear(tick, start, distance, duration);

case Mode.easeInQuad: return easeInQuad(tick, start, distance, duration);
case Mode.easeOutQuad: return easeOutQuad(tick, start, distance, duration);
case Mode.easeInOutQuad:  return easeInOutQuad(tick, start, distance, duration);

case Mode.easeInCubic: return easeInCubic(tick, start, distance, duration);
case Mode.easeOutCubic: return easeOutCubic(tick, start, distance, duration);
case Mode.easeInOutCubic: return easeInOutCubic(tick, start, distance, duration);

case Mode.easeInQuart: return easeInQuart(tick, start, distance, duration);
case Mode.easeOutQuart: return easeOutQuart(tick, start, distance, duration);
case Mode.easeInOutQuar: return easeInOutQuar(tick, start, distance, duration);

case Mode.easeInQuint: return easeInQuint(tick, start, distance, duration);
case Mode.easeOutQuint:  return easeOutQuint(tick, start, distance, duration);
case Mode.easeInOutQuint: return easeInOutQuint(tick, start, distance, duration);

case Mode.easeInSine: return easeInSine(tick, start, distance, duration);
case Mode.easeOutSine: return easeOutSine(tick, start, distance, duration);
case Mode.easeInOutSine: return easeInOutSine(tick, start, distance, duration);

case Mode.easeInExpo: return easeInExpo(tick, start, distance, duration);
case Mode.easeOutExpo: return easeOutExpo(tick, start, distance, duration);
case Mode.easeInOutExpo: return easeInOutExpo(tick, start, distance, duration);

case Mode.easeInCirc: return easeInCirc(tick, start, distance, duration);
case Mode.easeOutCirc: return easeOutCirc(tick, start, distance, duration);
case Mode.easeInOutCirc: return easeInOutCirc(tick, start, distance, duration);

case Mode.easeInBounce: return easeInBounce(tick, start, distance, duration);
case Mode.easeOutBounce: return easeOutBounce(tick, start, distance, duration);
case Mode.easeInOutBounce: return easeInOutBounce(tick, start, distance, duration);

case Mode.easeInElastic: return easeInElastic(tick, start, distance, duration);
case Mode.easeOutElastic: return easeOutElastic(tick, start, distance, duration);
case Mode.easeInOutElastic: return easeInOutElastic(tick, start, distance, duration);

case Mode.easeInBack: return easeInBack(tick, start, distance, duration);
case Mode.easeOutBack: return easeOutBack(tick, start, distance, duration);
case Mode.easeInOutBack: return easeInOutBack(tick, start, distance, duration);

case Mode.easeInStrong: return easeInStrong(tick, start, distance, duration);
case Mode.easeOutStrong: return easeOutStrong(tick, start, distance, duration);
case Mode.easeInOutStrong:    return easeInOutStrong(tick, start, distance, duration);

default: return 0;
}
}

/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::: easing mode below :::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::    */
//=============== Linear ===========================================================
private static float linear (float t,float  b,float  c,float  d)
{
return -c*(t /= d)*(t - 2) + b;
}

//=============== Quad =============================================================
private static float easeInQuad(float t, float b, float c, float d)
{
return c*(t /= d)*t + b;
}
private static float easeOutQuad(float t, float b, float c, float d)
{
return -c*(t /= d)*(t - 2) + b;
}
private static float easeInOutQuad(float t, float b, float c, float d)
{
if ((t/=d/2)<1){
return c/2*t*t + b;
}
return -c/2*((–t)*(t - 2) - 1) + b;
}

//================ Cubic ==========================================================
private static float easeInCubic(float t, float b, float c, float d)
{
return c*(float)Math.Pow(t/d, 3) + b;
}
private static float easeOutCubic(float t, float b, float c, float d)
{
return c*(float)(Math.Pow(t/d - 1, 3) + 1) + b;
}
private static float easeInOutCubic(float t, float b, float c, float d)
{
if ((t /= d / 2) < 1){
return c/2*(float)Math.Pow(t, 3) + b;
}
return c/2*(float)(Math.Pow(t - 2, 3) + 2) + b;
}

//================ Quart ==========================================================
private static float easeInQuart(float t, float b, float c, float d)
{
return c*(float)Math.Pow(t/d, 4) + b;
}
private static float easeOutQuart(float t, float b, float c, float d)
{
return -c*(float)(Math.Pow(t/d - 1, 4) - 1) + b;
}
private static float easeInOutQuar(float t, float b, float c, float d)
{
if ((t /= d / 2) < 1){
return c/2*(float)Math.Pow(t, 4) + b;
}
return -c/2*(float)(Math.Pow(t - 2, 4) - 2) + b;
}

//================ Quint ==========================================================
private static float easeInQuint(float t, float b, float c, float d)
{
return c*(float)Math.Pow(t/d, 5) + b;
}
private static float easeOutQuint(float t, float b, float c, float d)
{
return c*(float)(Math.Pow(t/d - 1, 5) + 1) + b;
}
private static float easeInOutQuint(float t, float b, float c, float d)
{
if ((t /= d / 2) < 1){
return c/2*(float)Math.Pow(t, 5) + b;
}
return c/2*(float)(Math.Pow(t - 2, 5) + 2) + b;
}

//================ Sine ===========================================================
private static float easeInSine(float t, float b, float c, float d)
{
return c * (float)(1 - Math.Cos(t / d * (Math.PI / 2))) + b;
}
private static float easeOutSine(float t, float b, float c, float d)
{
return c * (float)Math.Sin(t / d * (Math.PI / 2)) + b;
}
private static float easeInOutSine(float t, float b, float c, float d)
{
return c / 2 * (float)(1 - Math.Cos(Math.PI * t / d)) + b;
}

//================ Expo ===========================================================
private static float easeInExpo(float t, float b, float c, float d)
{
return c * (float)Math.Pow(2, 10 * (t / d - 1)) + b;
}
private static float easeOutExpo(float t, float b, float c, float d)
{
return c * (float)(-Math.Pow(2, -10 * t / d) + 1) + b;
}
private static float easeInOutExpo(float t, float b, float c, float d)
{
if ((t /= d / 2) < 1) {
return c / 2 * (float)Math.Pow(2, 10 * (t - 1)) + b;
}
return c / 2 * (float)(-Math.Pow(2, -10 * –t) + 2) + b;
}

//================ Circ ===========================================================
private static float easeInCirc(float t, float b, float c, float d)
{
return c * (1 - (float)Math.Sqrt(1 - (t /= d) * t)) + b;
}
private static float easeOutCirc(float t, float b, float c, float d)
{
return c * (float)Math.Sqrt(1 - (t = t / d - 1) * t) + b;
}
private static float easeInOutCirc(float t, float b, float c, float d)
{
if ((t /= d / 2) < 1) {
return c / 2 * (1 - (float)Math.Sqrt(1 - t * t)) + b;
}
return c / 2 * ((float)Math.Sqrt(1 - (t -= 2) * t) + 1) + b;
}

//================ Bounce =========================================================
private static float easeInBounce(float t, float b, float c, float d)
{
return c - easeOutBounce(d - t, 0, c, d) + b;
}
private static float easeOutBounce(float t, float b, float c, float d)
{
if ((t /= d) < (1 / 2.75)) {
return (float)(c * (7.5625 * t * t) + b);
} else if (t < (2 / 2.75)) {
return c * (7.5625f * (t -= (1.5f / 2.75f)) * t + 0.75f) + b;
} else if (t < (2.5 / 2.75)) {
return c * (7.5625f * (t -= (2.25f / 2.75f)) * t + 0.9375f) + b;
} else {
return c * (7.5625f * (t -= (2.625f / 2.75f)) * t + .984375f) + b;
}
}
private static float easeInOutBounce(float t, float b, float c, float d)
{
if (t < d * 0.5) {
return (easeInBounce(t * 2, 0, c, d) * 0.5f + b);
}
return (easeOutBounce(t * 2 - d, 0, c, d) * 0.5f + c * 0.5f + b);
}

//================ Elastic ========================================================
private static float easeInElastic(float t, float b, float c, float d, float a = 0, float p = 0)
{
float s;

if (t == 0) { return b;    }
if ((t/=d)==1) { return b+c; }
if (p==0) { p = d * 0.3f; }
if (a==0 || (c > 0 && a < c) || (c < 0 && a < -c)){
a = c;
s = p / 4;
} else {
s = p / (float)(Math.PI * 2 * Math.Asin(c / a));
}
return -(float)(a*Math.Pow(2,10*(t-=1)) * Math.Sin( (t*d-s)* Math.PI * 2/p )) + b;
}
private static float easeOutElastic(float t, float b, float c, float d, float a = 0, float p = 0)
{
float s;
if (t == 0) { return b; }
if ((t/=d)==1) { return b+c; }
if (p==0) { p = d * 0.3f; }
if (a==0 || (c > 0 && a < c) || (c < 0 && a < -c)){
a = c;
s = p / 4;
} else {
s = p / (float)(Math.PI * 2 * Math.Asin(c / a));
}
return (float)(a*Math.Pow(2,-10*t) * Math.Sin( (t*d-s)* Math.PI * 2/p )) + c + b;

}
private static float easeInOutElastic(float t, float b, float c, float d, float a = 0, float p = 0)
{
float s;
if (t == 0) { return b; }
if ((t /= d * 0.5f) == 2){
return b + c;
}
if (p == 0){p = d*(0.3f*1.5f);}
if (a==0 || (c > 0 && a < c) || (c < 0 && a < -c)){
a = c;
s = p / 4;
} else {
s = p/(float) (Math.PI*2*Math.Asin(c/a));
}
if (t < 1) {
return -0.5f*(float) ((a*Math.Pow(2, 10*(t -= 1))*Math.Sin((t*d - s)*Math.PI*2/p))) + b;
}
return a*(float) (Math.Pow(2, -10*(t -= 1))*Math.Sin((t*d - s)*Math.PI*2/p))*0.5f + c + b;
}

//================ Back ===========================================================
private static float easeInBack(float t, float b, float c, float d, float s = 1.70158f)
{
return c * (t /= d) * t * ((s + 1) * t - s) + b;
}
private static float easeOutBack(float t, float b, float c, float d, float s = 1.70158f)
{
return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
}
private static float easeInOutBack(float t, float b, float c, float d, float s = 1.70158f)
{
if ((t /= d * 0.5f) < 1) {
return c * 0.5f * (t * t * (((s *= (1.525f)) + 1) * t - s)) + b;
}
return c / 2 * ((t -= 2) * t * (((s *= (1.525f)) + 1) * t + s) + 2) + b;
}

//================ Strong =========================================================
private static float easeInStrong(float t, float b, float c, float d)
{
return c * (t /= d) * t * t * t * t + b;
}
private static float easeOutStrong(float t, float b, float c, float d)
{
return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
}
private static float easeInOutStrong(float t, float b, float c, float d)
{
if ((t /= d * 0.5f) < 1){
return c * 0.5f * t * t * t * t * t + b;
}
return c * 0.5f * ((t -= 2) * t * t * t * t + 2) + b;
}
}
}

Tags:
, ,

汤臣一品(上海最贵豪宅楼盘)多媒体演示项目用户大屏幕触摸屏演示。项目中全部使用Flash 3D技术,图形的变换和滑动具有极佳的“丝绸般柔滑”的手感和“浮动在云端”的优雅。

点击下面的图片可观看游戏截图。原图太大,所以下面的截图都经过了缩小,视觉效果方面相对就差了很多。

view Flash effect view Flash effect view Flash effect view Flash effect
view Flash effect view Flash effect view Flash effect
Comments Off

园艺大亨II是个种植类SNS游戏。玩家每天上线后可以在花盘里种花、浇水、除草、灭虫、授粉,收获花卉后可以出售、制作插花、用插花布置花园或送给好友,或者到好友的花园里帮助好友护理花卉或者恶搞一番。不同种类的花卉之间授粉会是花卉产生变异,长出第三种花卉,结出第三种种子(这是该游戏的最大亮点。收集种子是玩家最重要的玩点)。

点击下面的图片可观看游戏截图。

view Flash effect view Flash effect view Flash effect view Flash effect
view Flash effect view Flash effect
Comments Off

“百科竞赛”是教育部针对小学-初中生开发的一个大型知识竞赛型社区游戏。里面既有实时在线竞赛系统,又有各种寓教于乐的和百科知识问答有关的益智型游戏,也有各种百科知识问答训练场。游戏采用SmartFoxServe进行房间管理,可举办不同规模、不同地域、不同年级、不同学科的知识竞赛活动。

点击下面的图片可观看游戏截图。

view Flash effect view Flash effect view Flash effect view Flash effect
view Flash effect
Comments Off

NONOPANDA是以卡通形象nonopanda为主角的带有Flash社区性质的MMO网页游戏。小熊猫们可以在地图上四处走动探索,在野外打怪成长,和好友组队探险。战斗方式采用回合制,在战斗中角色除了可以用各种技能外,还可以进行战斗变身,使用华丽震撼的必杀技。

该游戏针对儿童 / 少年玩家,带有社区性质,融合了web game和sns game的游戏方式和元素,强化了游戏玩家之间的互动,并且在战斗方式方面和目前市场上主流的游戏相比有了较大的突破。

由于公司方面资金的原因,这个游戏没有能完全开发完毕,这实属一件憾事。

点击下面的图片可观看游戏截图(由于游戏没有开发完成,截图是Demo的截图,仅供参考)。

view Flash effect view Flash effect view Flash effect view Flash effect
view Flash effect view Flash effect
Comments Off

石头部落是个建造类策略SNS游戏。玩家可以在地图上建造民居、工场、神庙、装饰物(雕塑、植物、动物等),并且可以在地图上随意移动旋转这些建筑以摆放成自己想要的布局。不同的建筑产生不同的资源,玩家每天收集资源后既可以扩大生产,壮大部落规模,也可以派出英雄到世界地图上探险,或者和其他玩家进行战斗较量,抢夺对方的资源。部落规模达到一定程度后可以去拓展其他的生存发展空间(新地图)。

这个游戏比较特殊,是我和一个公司的合作项目,所以游戏的策划、美术监制、项目管理等都是我一个人做的,公司方面仅仅提供资金而不介入游戏的实际开发。

点击下面的图片可观看游戏截图。

view Flash effect view Flash effect view Flash effect view Flash effect
view Flash effect
Comments Off

The website is developed for MRKT company, based on PHP + MySQL.

The style of the website is interesting and fancy, it like a matrix made up of pokers. It is suitable for showing pictures with less text.

这个网站是为MRKT开发的,基于PHP + MySQL。

MRKT公司主要设计生产一些很有小资情调的日常用品,与此相应,网站就采用了这种风趣的造型。它象一桌扑克牌阵,扑克牌随着桌面大小的变化而流动排列。详细页里的图片大小比较适中,看起来很舒服,如果要看大图的话,只要点击图片,就会出现overlay窗口,一个大图看图器足以让你好好的欣赏那些图片了。这种形式比较适合图片多文字少而且追求个性化的网站,一般设计公司、展览公司、工作室比较喜欢。

此外,这种展示方式很适合手持设备观看网站。

突然有一大桌图形扑克牌展示在你面前,视觉冲击力的确是比较强的。这算得上是我做的比较满意的一个网站。

Comments Off

The website was developed for a futures exchange company.

Maybe you will say: what an ugly website (in fact, I have spoken same words more than one thousand time :), but please note, up to now (2009) the website have been run 7 years. in internet time, it is really a miracle.

Anyway, it is my first website project, I am relieved that it has such a long life.

I did architecture design, art design, HTML, CSS, Javascript, Flash.

The following is some screenshots of the website. to view the live website, please click here.

这是一个期货经纪公司的网站。

也许你看了第一眼就会感叹:世上居然有这么丑陋的网站。其实我严重同意你的观点,不过请注意这个网站至今(2009)已经运行了7年,在网站改版比女人换衣服还勤快的互联网时代,这不能不说是个奇迹。对于这种来自远古的老不死,你还指望它俊俏到哪儿去?

这是我主持的第一个网站开发项目,说实在的,对于它的如此长寿,我深感欣慰。

我做了网站策划、美术设计、HTML、CSS、Javascript和Flash等工作。

上面是一些网站的截图。访问网站请点击这里

Comments Off

Theme by RoseCityGardens.com