Google的Logo记现代舞先驱玛莎·葛兰姆117周年诞辰-Flash版
Google的这个logo看着感觉很不错,google官方是用CSS+Javascript实现的,后来看博客园的很多朋友也照着实现了(其中一个),于是我用AS3实现了一个flash版的。 其实我觉得牛的不是这个技术,而是这个动画的动作设计很棒。
效果预览:
图片下载:
直接另存为下载,如果链接失效,可从底部下载源码,源码中也包含此图片。
实现代码:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
[SWF(backgroundColor=0xffffff, width="420", height="160", frameRate="16")]
public class google_logo_20110511 extends Sprite
{
private var animationInfo:Array = [
[307,48,88,89,0,0],
[307,48,89,89,88,0],
[307,48,91,89,177,0],
[305,49,93,89,268,0],
[305,50,93,88,361,0],
[305,50,93,88,454,0],
[306,52,92,86,547,0],
[305,53,93,84,639,0],
[305,54,94,83,732,0],
[306,54,93,83,826,0],
[307,54,92,83,919,0],
[307,54,92,83,1011,0],
[308,54,90,83,1103,0],
[308,54,90,83,1193,0],
[306,53,91,84,1283,0],
[306,53,91,84,1374,0],
[308,53,90,84,1465,0],
[308,53,90,84,1555,0],
[305,53,92,84,1645,0],
[305,52,92,85,1737,0],
[306,52,91,85,1829,0],
[308,51,88,87,1920,0],
[308,50,88,88,0,89],
[308,49,88,88,88,89],
[307,49,89,88,176,89],
[307,50,89,87,265,89],
[308,51,89,86,354,89],
[307,54,90,83,443,89],
[307,57,90,80,533,89],
[306,58,92,79,623,89],
[306,58,92,79,715,89],
[305,60,92,77,807,89],
[302,61,95,76,899,89],
[302,63,95,74,994,89],
[302,51,96,86,1089,89],
[302,66,98,71,1185,89],
[304,67,96,69,1283,89],
[301,63,96,74,1379,89],
[301,58,93,79,1475,89],
[291,52,94,85,1568,89],
[288,50,71,88,1662,89],
[285,43,76,95,1733,89],
[285,37,70,101,1809,89],
[281,29,55,109,1879,89],
[278,20,58,119,1934,89],
[278,20,55,119,1992,89],
[277,12,121,127,0,208],
[271,2,122,138,121,208],
[267,1,126,139,243,208],
[264,0,136,140,369,208],
[260,0,141,140,505,208],
[255,0,148,140,646,208],
[252,0,151,140,794,208],
[249,2,121,138,945,208],
[247,3,123,137,1066,208],
[246,3,123,137,1189,208],
[246,2,124,137,1312,208],
[258,2,112,137,1436,208],
[263,2,106,137,1548,208],
[263,2,106,137,1654,208],
[262,2,103,137,1760,208],
[260,2,104,136,1863,208],
[260,2,104,137,1967,208],
[268,2,98,137,0,348],
[267,2,99,137,98,348],
[266,2,97,137,197,348],
[266,3,96,136,294,348],
[264,3,99,136,390,348],
[263,3,100,136,489,348],
[261,3,100,136,589,348],
[259,2,138,137,689,348],
[254,2,126,137,827,348],
[247,2,101,136,953,348],
[240,2,108,136,1054,348],
[238,1,110,137,1162,348],
[230,1,118,138,1272,348],
[220,15,128,124,1390,348],
[211,18,137,121,1518,348],
[205,43,102,96,1655,348],
[202,45,104,93,1757,348],
[200,38,97,101,1861,348],
[198,38,104,101,1958,348],
[197,39,107,100,0,486],
[197,39,112,100,107,486],
[213,39,94,110,219,486],
[212,40,95,111,313,486],
[211,41,97,111,408,486],
[209,42,99,112,505,486],
[209,43,98,112,604,486],
[213,43,87,112,702,486],
[213,42,83,113,789,486],
[211,40,86,109,872,486],
[211,38,86,103,958,486],
[211,37,88,112,1044,486],
[211,20,186,131,1132,486],
[213,27,167,122,1318,486],
[212,44,87,105,1485,486],
[210,44,88,98,1572,486],
[195,44,106,98,1660,486],
[189,44,110,98,1766,486],
[182,46,117,99,1876,486],
[173,44,118,96,1993,486],
[161,43,130,99,0,617],
[154,42,137,97,130,617],
[153,42,137,97,267,617],
[153,42,137,97,404,617],
[152,41,137,98,541,617],
[151,41,137,97,678,617],
[149,41,145,97,815,617],
[148,25,144,114,960,617],
[148,13,144,126,1104,617],
[141,12,153,127,1248,617],
[115,11,173,128,1401,617],
[108,7,180,133,1574,617],
[108,4,180,136,1754,617],
[108,3,176,137,1934,617],
[108,1,161,139,0,754],
[105,1,235,138,161,754],
[103,1,295,148,396,754],
[103,0,277,149,691,754],
[108,0,234,137,968,754],
[101,0,232,137,1202,754],
[99,0,135,139,1434,754],
[95,0,244,139,1569,754],
[81,0,152,139,1813,754],
[69,0,164,139,1965,754],
[66,0,169,139,0,903],
[65,0,170,139,169,903],
[63,0,168,138,339,903],
[61,0,159,138,507,903],
[35,0,304,139,666,903],
[19,0,189,140,970,903],
[18,11,138,129,1159,903],
[18,11,137,129,1297,903],
[18,11,137,128,1434,903],
[18,6,135,133,1571,903],
[7,4,146,136,1706,903],
[6,4,147,136,1852,903],
[3,4,150,136,1999,903],
[3,5,150,135,0,1043],
[3,8,150,132,150,1043],
[4,6,394,145,300,1043],
[12,6,388,145,694,1043],
[11,8,389,144,1082,1043],
[11,8,387,144,1471,1043],
[11,8,387,143,1858,1043],
[10,8,113,131,0,1188],
[11,8,111,131,113,1188],
[10,9,112,130,224,1188],
[12,9,116,130,336,1188],
[12,9,111,130,452,1188],
[12,9,111,130,563,1188],
[12,9,110,131,674,1188],
[12,34,113,106,784,1188],
[13,35,110,104,897,1188]
];
[Embed(source="google_logo.png")]
private var logo:Class;
private var mcs:Array = [];
private var playIndex:int = 0;
public function google_logo_20110511()
{
this.stage.scaleMode = StageScaleMode.NO_SCALE;
var logoBitmap:Bitmap = new logo();
for each(var info:Array in animationInfo)
{
var bitmap:Bitmap = getBitmapFromBitmapData(logoBitmap.bitmapData,
info[4],
info[5],
info[2],
info[3]);
var mc:MovieClip = new MovieClip();
mc.addChild(bitmap);
mc.x = info[0];
mc.y = info[1];
mcs.push(mc);
}
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(event:Event):void
{
if(playIndex < mcs.length)
{
var mc:MovieClip = mcs[playIndex] as MovieClip;
addChild(mc);
playIndex++;
}
else
{
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
private function getBitmapFromBitmapData(bitmapData:BitmapData, x:int, y:int, width:int, height:int):Bitmap
{
var bitmap:Bitmap = new Bitmap();
bitmap.bitmapData = new BitmapData(width, height);
bitmap.bitmapData.copyPixels(bitmapData,
new Rectangle(x, y, width, height),
new Point(0, 0));
return bitmap;
}
}
}
最后说明一下代码中数组的数据来源于: http://www.cnblogs.com/eric6/archive/2011/05/11/2043327.html
源码下载(源码中包含图片文件)
--kaixuan's cnblogs
浙公网安备 33010602011771号