#眉標=Silverlight #副標=Silverlight開發技術(2) #大標=向量圖形繪製、筆刷上色、與事件處理機制 #作者=文圖/董大偉 ============= 程式1 ================    ============= 程式2 ================ ============= 程式3 ================ ==<反灰>=========== 0000: 0001: 0002: 0003: 0004:================ ==<反灰>=========== ... ================ ==<反灰>=========== ================    ============= 程式4 ================    ============= 程式5 ================ ============= 程式6 ================       ============= 程式7 =============== ============= 程式8 ================    ==<灰>=========== (…略…) ================    ==<灰>=========== function PL3_Click(sender,mouseEventArgs) { alert(sender.Name); }================    ==<灰>=========== function PL3_Click(sender,mouseEventArgs) { var Canvas1 = sender.findName("Canvas1"); var Host = sender.getHost(); }================    ==<灰>=========== mouseEventArgs.getPosition(null).x mouseEventArgs.getPosition(null).y===============    ==<灰>=========== mouseEventArgs.shift mouseEventArgs.ctrl ================    ==<灰>===========     (…略…) ================    ==<灰>=========== function Canvas_KeyDown(sender, keyEventArgs){ alert(keyEventArgs.PlatformKeyCode); } function Canvas_KeyUp(sender, keyEventArgs){ alert(keyEventArgs.Key); } ================ ============= 程式9 function onSilverlightPlugInLoaded() { var PL2; PL2=document.getElementById('SilverlightPlugIn').content.findName('PL2'); PL2.addEventListener("MouseLeftButtonDown", onPL2click); } function onPL2click() { alert('onPL2click'); }================ ==<灰>=========== ================    ==<灰>=========== //鍵盤按下 function OnKeyDown(sender, keyEventArgs){ //按下空白鍵就發射 if (keyEventArgs.PlatformKeyCode == 32) Shoot(); } //滑鼠點選也發射 function OnClick(sender, mouseEventArgs) { Shoot(); }================    ============= 程式100000: var BugsName=new Array(4); 0001: function init() 0002: { 0003: var i; 0004: for (i=0;i<5;i++) 0005: { 0006: BugsName[i]="bug_"+i; 0007: CreateBug(BugsName[i],i*80+50,30); 0008: } 0009: //開始移動 0010: setTimeout('BugsMove()',500); 0011: } 0012: //目標開始移動 0013: function BugsMove() 0014: { 0015: var i,flag; 0016: flag=false; 0017: for (i=0;i<5;i++) 0018: { 0019: var bug=document.getElementById('SilverlightPlugIn').content.findName(BugsName[i]) 0020: if (bug!=null) 0021: { 0022: flag=true; 0023: bug["Canvas.Top"]+=15; 0024: //如果Bug到達本部 0025: if ( bug["Canvas.Top"]>430) {alert('Game Over, You Lost!!!'); return;} 0026: } 0027: //如果所有bug消失 0028: if (flag==false) {alert('Game Over, You Win!!!'); return;} 0029: } 0030: //繼續移動 0031: setTimeout('BugsMove()',1500); 0032: }================       ============= 程式110000: //發射子彈 0001: function Shoot() 0002: { 0003: var bullet=document.getElementById('SilverlightPlugIn').content.findName('bullet'); 0004: var shuttle=document.getElementById('SilverlightPlugIn').content.findName('shuttle'); 0005: 0006: //動態設定子彈的位置(依照太空梭所在位置) 0007: bullet["Canvas.Left"]=shuttle["Canvas.Left"]+25; 0008: bullet["Canvas.Top"]=shuttle["Canvas.Top"]-20; 0009: //發射動畫(處理子彈移動以及判斷是否射中目標) 0010: ShootingProcess(); 0011: } 0012: //處理子彈發射 0013: function ShootingProcess() 0014: { 0015: var bullet=document.getElementById('SilverlightPlugIn').content.findName('bullet'); 0016: bullet["Canvas.Top"]-=10; 0017: //判斷是否有射中目標 0018: var i; 0019: for (i=0;i<5;i++) 0020: { 0021: var bug=document.getElementById('SilverlightPlugIn').content.findName(BugsName[i]) 0022: if (bug!=null) { 0023: if ( bullet["Canvas.Top"]bug["Canvas.Left"] && 0025: bullet["Canvas.Left"]-20) setTimeout('ShootingProcess()',10); 0034: }================    ==<灰>=========== //切換全螢幕 function FullScreen(sender, mouseEventArgs) { document.getElementById('SilverlightPlugIn').content.fullScreen=true; }================