HTML5¼¼Êõ

·ÂASÓï·¨À´Ð´HTML5¡ªµÚ2Õ£¬SpriteʵÏÖ¶¯»­

×ÖºÅ+ ×÷Õߣºlufy À´Ô´£º 2014-11-16 21:26 ÎÒÒªÆÀÂÛ( )

ÉÏһƪ£¬ÎÒÒѾ­Ä£·Âas£¬¼ÓÈëÁËLBitmapºÍLBitmapDataÀ࣬²¢ÇÒÓÃËüÃÇʵÏÖÁ˾²Ì¬Í¼Æ¬µÄÏÔʾ¡£ Õâ´ÎÓÃSpriteÀ´¶¯Ì¬ÏÔʾͼƬ¡£ ÒÀÈ»×ñÑ­ÉÏһƪ¶ÔÏÔʾ¶ÔÏóµÄ´¦ÀíµÄ˼·£¬Ìí¼ÓLSpriteÀ࣬²¢×·¼Ó

 ÉÏһƪ£¬ÎÒÒѾ­Ä£·Âas£¬¼ÓÈëÁËLBitmapºÍLBitmapDataÀ࣬²¢ÇÒÓÃËüÃÇʵÏÖÁ˾²Ì¬Í¼Æ¬µÄÏÔʾ¡£
Õâ´ÎÓÃSpriteÀ´¶¯Ì¬ÏÔʾͼƬ¡£
ÒÀÈ»×ñÑ­ÉÏһƪ¶ÔÏÔʾ¶ÔÏóµÄ´¦ÀíµÄ˼·£¬Ìí¼ÓLSpriteÀ࣬²¢×·¼Óshow·½·¨£¬

  1. function LSprite(){  
  2.         var self = this;  
  3.         self.type = "LSprite";  
  4.         self.x = 0;  
  5.         self.y = 0;  
  6.         self.visible=true;  
  7.         self.childList = new Array()  
  8. }  
  9. LSprite.prototype = {  
  10.         show:function (cood){  
  11.                 if(cood==null)cood={x:0,y:0};  
  12.                 var self = this;  
  13.                 if(!self.visible)return;  
  14.                 LGlobal.show(self.childList,{x:self.x+cood.x,y:self.y+cood.y});  
  15.         },  
  16.         addChild:function (DisplayObject){  
  17.                 var self  = this;  
  18.                 self.childList.push(DisplayObject);  
  19.         }  
  20. }  


ÒòΪSpriteÉÏ¿ÉÒÔÓÐͼƬµÈÆäËûµÄ¿ÉÏÔʾ¶ÔÏó£¬ËùÒÔÎÒÔÚÆä¹¹Ô캯ÊýÀÌí¼ÓÁËchildList£¬ÓÃÀ´±£´æËüÉÏÃæµÄËùÓжÔÏó¡£È»ºóÔÚµ÷ÓÃËü±¾ÉíµÄshow·½·¨µÄʱºò£¬½«ÆäLGlobalÑ­»·ÏÖʵÆä×Ó¶ÔÏó¡£
ÕâÑùÒ»À´£¬ÎÒÃÇÉÏһƪÖÐÏÔʾͼƬµÄ´úÂ룬Ҳ¿ÉÒÔÀûÓÃSpriteÀ´ÏÔʾÁË£¬´úÂëÈçÏ£º

JavaScript Code¸´ÖÆÄÚÈݵ½¼ôÌù°å
  1. function main(){  
  2.         loader = new LLoader();  
  3.         loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
  4.         loader.load("1.png","bitmapData");  
  5. }  
  6. function loadBitmapdata(event){  
  7.         var bitmapdata = new LBitmapData(loader.content);  
  8.         var mapimg = new LBitmap(bitmapdata);  
  9.           
  10.         var backLayer = new LSprite();  
  11.         addChild(backLayer);  
  12.         backLayer.addChild(mapimg);  
  13. }  

ÎÒÃÇÖªµÀ£¬actionscriptÖеÄSprite¿ÉÒÔÌí¼ÓEnterFrameʼþ£¬ÓÃÀ´¶¯Ì¬ÏÔʾͼƬ£¬ÎÒÕâÀïÒ²À´Ä£·Âһϣ¬ÒòΪÔÚLSpriteÀàÖÐshow·½·¨ÊDz»¶ÏÑ­»·µÄ,ËùÒÔ£¬ÎÒÖ»ÐèÒªÔÚshow·½·¨Öв»¶Ïµ÷ÓÃÒ»¸ö·½·¨£¬¾ÍÄÜÈÃÆäÑ­»·¡£
ÎÒ¼ÙÉèÓÐÒ»¸öÊý×飬ÀïÃæ´æ´¢ÁËËùÓв»¶ÏÑ­»·µÄËùÓз½·¨£¬È»ºóÎҾͿÉÒÔÔÚshow·½·¨ÖÐÑ­»·Õâ¸öÊý×飬ÕâÑù¾Í´ïµ½ÁËËùÓз½·¨µÄÑ­»·£¬¿´ÏÂÃæ

JavaScript Code¸´ÖÆÄÚÈݵ½¼ôÌù°å
  1. function LSprite(){  
  2.         var self = this;  
  3.         self.type = "LSprite";  
  4.         self.x = 0;  
  5.         self.y = 0;  
  6.         self.visible=true;  
  7.         self.childList = new Array()  
  8.         self.frameList = new Array();  
  9. }  
  10. LSprite.prototype = {  
  11.         show:function (cood){  
  12.                 if(cood==null)cood={x:0,y:0};  
  13.                 var self = this;  
  14.                 if(!self.visible)return;  
  15.                 LGlobal.show(self.childList,{x:self.x+cood.x,y:self.y+cood.y});  
  16.                 self.loopframe();  
  17.         },  
  18.         loopframe:function (){  
  19.                 var self = this;  
  20.                 var key;  
  21.                 for(key in self.frameList){  
  22.                         self.frameList[key]();  
  23.                 }  
  24.         },  
  25.         addChild:function (DisplayObject){  
  26.                 var self  = this;  
  27.                 self.childList.push(DisplayObject);  
  28.         }  
  29. }  
¹â¼ÙÉ赱ȻÊDz»Ðеģ¬ÎÒÃÇÐèÒªÓÐÌí¼ÓÕâ¸öÑ­»·Ê¼þµÄ·½·¨£¬ËùÒÔÎÒÃÇ»¹ÐèÒªaddEventListener·½·¨£¬ÒÔ¼°ÒƳýÕâ¸öʼþµÄremoveEventListener·½·¨
 
JavaScript Code¸´ÖÆÄÚÈݵ½¼ôÌù°å
  1. addEventListener:function (type,listener){  
  2.                 var self = this;  
  3.                 if(type == LEvent.ENTER_FRAME){  
  4.                         self.frameList.push(listener);  
  5.                 }  
  6.         },  
  7.         removeEventListener:function (type,listener){  
  8.                 var self = this;  
  9.                 var i,length = self.frameList.length;  
  10.                 for(i=0;i<length;i++){  
  11.                         if(type == LEvent.ENTER_FRAME){  
  12.                                 self.frameList.splice(i,1);  
  13.                                 break;  
  14.                         }  
  15.                 }  
  16.         }  
 

¸ÃÌí¼ÓµÄ¶¼Ìí¼ÓÁË£¬½ÓÏÂÀ´£¬¾ÍÀ´¼òµ¥ÊµÏÖÒ»¸öÈËÎïµÄÐÐ×ßͼ
ÏÈÀ´¸øBitmapDataÀàÌí¼Ó¼¸¸ö·½·¨£¬ÓÃÀ´¸Ä±äͼƬÏÔʾµÄÇøÓòλÖõÈ

JavaScript Code¸´ÖÆÄÚÈݵ½¼ôÌù°å
  1. LBitmapData.prototype = {  
  2.                 setProperties:function (x,y,width,height){  
  3.                         var self = this;  
  4.                         self.x = x;  
  5.                         self.y = y;  
  6.                         self.width = width;  
  7.                         self.height = height;  
  8.                 },  
  9.                 setCoordinate:function (x,y){  
  10.                         var self = this;  
  11.                         self.x = x;  
  12.                         self.y = y;  
  13.                 }  
  14.         }  
ºÃÁË£¬ÏÖÔÚ×¼±¸Ò»ÕÅÈËÎïµÄÐÐ×ßͼ£¬Õâ¾ÍÈÃËü¶¯ÆðÀ´
 
JavaScript Code¸´ÖÆÄÚÈݵ½¼ôÌù°å
  1. var list = new Array();  
  2. var index = 0;  
  3. var mapimg;  
  4. var loader  
  5. var imageArray;  
  6. var animeIndex = 0;  
  7. var dirindex = 0;  
  8. var dirarr = new Array({x:0,y:1},{x:-1,y:0},{x:1,y:0},{x:0,y:-1});  
  9. function main(){  
  10.         loader = new LLoader();  
  11.         loader.addEventListener(LEvent.COMPLETE,loadBitmapdata);  
  12.         loader.load("1.png","bitmapData");  
  13. }  
  14. function loadBitmapdata(event){  
  15.         var bitmapdata = new LBitmapData(loader.content,0,0,70,92);  
  16.         imageArray = LGlobal.divideCoordinate(bitmapdata.image.width,bitmapdata.image.height,8,8);  
  17.         mapimg = new LBitmap(bitmapdata);  
  18.         mapimg.x = 100;  
  19.         mapimg.bitmapData.setCoordinate(0,0);  
  20.         index = 0;  
  21.         var backLayer = new LSprite();  
  22.         addChild(backLayer);  
  23.         backLayer.addChild(mapimg);  
  24.         backLayer.addEventListener(LEvent.ENTER_FRAME, onframe)  
  25. }  
  26.   
  27. function onframe(){  
  28.         index++;  
  29.         if(index >= imageArray[0].length){  
  30.                 index = 0;  
  31.         }  
  32.         mapimg.bitmapData.setCoordinate(imageArray[dirindex][index].x,imageArray[dirindex][index].y);  
  33.           
  34.         mapimg.x += dirarr[dirindex].x*3;  
  35.         mapimg.y += dirarr[dirindex].y*3;  
  36.         if(animeIndex++ > 20){  
  37.                 dirindex++;  
  38.                 if(dirindex > 3)dirindex = 0;  
  39.                 animeIndex = 0;  
  40.         }  
  41. }  
Ч¹û¿´ÏÂÃæµÄurl

http://fsanguo.comoj.com/html5/jstoas01/index.html
Ô´ÂëµÄ»°£¬Ö±½ÓÓÃä¯ÀÀÆ÷¾Í¿ÉÒԲ鿴ÁË£¬µØÇòÈ˶¼ÖªµÀ

¡¡

1.±¾Õ¾×ñÑ­ÐÐÒµ¹æ·¶£¬ÈκÎ×ªÔØµÄ¸å¼þ¶¼»áÃ÷È·±ê×¢×÷ÕߺÍÀ´Ô´£»2.±¾Õ¾µÄÔ­´´ÎÄÕ£¬Çë×ªÔØÊ±Îñ±Ø×¢Ã÷ÎÄÕÂ×÷ÕߺÍÀ´Ô´£¬²»×ðÖØÔ­´´µÄÐÐΪÎÒÃǽ«×·¾¿ÔðÈΣ»3.×÷ÕßͶ¸å¿ÉÄܻᾭÎÒÃDZ༭Ð޸Ļò²¹³ä¡£

Ïà¹ØÎÄÕÂ
  • HTML5¿ª·¢µÄ·­Ò³Ð§¹û

    HTML5¿ª·¢µÄ·­Ò³Ð§¹û

    2014-11-16 21:26

  • ·ÂASÓï·¨À´Ð´HTML5-ÖÕÆªLegendForHtml5Programming

    ·ÂASÓï·¨À´Ð´HTML5-ÖÕÆªLegendForHtml5Programming

    2014-11-16 21:26

  • ·ÂASÓï·¨À´Ð´HTML5¡ªµÚ9Õ£¬URLLoader¶ÁÈ¡Îļþ

    ·ÂASÓï·¨À´Ð´HTML5¡ªµÚ9Õ£¬URLLoader¶ÁÈ¡Îļþ

    2014-11-16 21:26

  • ·ÂASÓï·¨À´Ð´HTML5¡ªµÚ8Õ£¬Í¼Æ¬´¦Àí+Á£×Ó

    ·ÂASÓï·¨À´Ð´HTML5¡ªµÚ8Õ£¬Í¼Æ¬´¦Àí+Á£×Ó

    2014-11-16 21:26

ÍøÓѵãÆÀ
¾«²Êµ¼¶Á
ÈÈÃÅ×ÊѶ
¹Ø×¢ÎÒÃÇ
¹Ø×¢Î¢ÐŹ«Öںţ¬Á˽â×îо«²ÊÄÚÈÝ

©