èè -ãã¹ãã£ã¹ã©ãã»ãã§ããã³ã
Habr- den_lesnovã®ã¬ã€ã¢ãŠããšé 眮ã
ç§ã¯äœããééã£ãŠãããšæããŸã
æ£ããããšãããããšã§...
ã©ã€ã¢ã³ã»ãããŒïŒOneRepublicïŒã æãæ°ãã
ããã¹ã¬ã¹ãããšç§ã¯èªåã®ãµã€ãçšã«ãªãŒãã£ãªãã¬ãŒã€ãŒãéçºããŸããã ãã®ãµã€ãã§ã¯ãæ²ã®ãªãŒãã£ãªé²é³ããã¹ãããŠããããŠã§ãããŒãžããçŽæ¥åçããããšã倢èŠãŠããŸããã
ãã¬ãŒã€ãŒã¯æ¬¡ã®ããã«ãªããŸãã
ä»çµã¿- ãã¢ããŒãžã§ç¢ºèªã§ããŸã ã
æåã®è³ªåã¯ããªãèªåã®ãã¬ãŒã€ãŒããŒãããä¿è·ããäœçŸãã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããªãã£ãçç±ã§ãã çãã¯ç°¡åã§ãããã®ã¿ã¹ã¯ã«èå³ããã£ãããã§ãã
ãã®ãããžã§ã¯ãã§ã¯ã顧客ãäžåžãééçãªåæ©ããŸãã¯ç¹å®ã®æéã¯ãããŸããã§ããã ç§ãã¡ã¯é±ã«1åãèªå® ã§ç§ãã¡ã®1人ãšäŒããåã³ã®ããã«ããã°ã©ã ããŸããã ãã¬ãŒã€ãŒã®æåã®æå¹ãªããŒãžã§ã³ã¯2æ©ã§æºåãæŽãããµã€ãã«æçš¿ãããŸããããã®åŸãçŽ1幎éãã³ãŒããç¥èãªåœ¢ã«ããŸããã
ããã§ã¯ã䜿çšããäž»ãªæè¡ãœãªã¥ãŒã·ã§ã³ã«ã€ããŠèª¬æããŸãã
æè¡ã³ãŒã·ã£
-ãããŒãç§ãã¡ã¯æšæ¥å§ããã°ããã§ããã§ã«å€ãã³ãŒãããããŸã...
ãã¬ãŒã€ãŒã¯ãFlashããã®ä»ã®ã¢ã³ãã£ãŒã¯ãªãã§ãææ°ã®ã¯ã©ã€ã¢ã³ããã¯ãããžãŒïŒHTML5ã®ãªãŒãã£ãªãªããžã§ã¯ãïŒã§åäœããŸãã ãã ããå€ããã©ãŠã¶ãŒã®ãŠãŒã¶ãŒã¯èŠåŽããŸããããŠãŒã¶ãŒã«ãšã£ãŠããã¬ãŒã€ãŒã¯MP3ãã¡ã€ã«ãžã®çŽæ¥ãªã³ã¯ã®ããã«åäœããŸãã ããã¯ãç¹å®ã®ãã©ãŠã¶ãŒã¢ãã«ãšããŒãžã§ã³ããã§ãã¯ããã«ãæ©èœã®æ€åºã«ãã£ãŠã®ã¿éæãããŸãã
jQueryããã®ä»ã®ã©ã€ãã©ãªã¯äœ¿çšããŸããã§ããããã¹ãŠã®ã³ãŒãã¯çŽç²ãªJavaScriptã§èšè¿°ãããŠããŸãã ããã¯ãšãŠãèå³æ·±ãããã§ãã
JavaScriptã§ã¯ããæå°åœä»€åãæ倧宣èšåãã¢ãããŒããé å®ããã³ãŒãã®éè€ããå šèœãé¢æ°ãè€æ°å±€ã®æ¡ä»¶ãšã«ãŒããããã³ãã®ä»ã®ã³ãŒãã®èããé²ãããšãæ±ããŸããã
ãã¬ãŒã€ãŒã¯æ°Žå¹³æ¹åã«ããŽã ãã§ãããã®å¹ ãé³ã®éã«å€åããŠããã³ã³ãããŒã®å¹ å šäœã«èªåçã«åºãããŸãã
HTMLïŒããè¯ããããè¯ã
ã¢ãŒã»ã¯äººã ã«ã§ããªã
ã¿ãã¬ããã¯ããªããèªã¿ãŸã
ãããã¯ãããããšã³ã³ãŒããããŠããŸã
æ
ãã¬ãŒã€ãŒã«é¢é£ä»ããããŠããHTMLã³ãŒãã¯ãåæç¶æ ã§ã¯ããªãŒãã£ãªãã¡ã€ã«ãžã®éåžžã®çŽæ¥ãã€ããŒãªã³ã¯ã§ãã
<a href="/path/file.mp3" target="_blank" id="player" class="ready"> </a>
ããã¯ãé³æ¥œãéå§ããã«ãã¡ã€ã«ããã£ã¹ã¯ã«ä¿åããããå¥ã®ã¢ããªã±ãŒã·ã§ã³ã§éãããããªã³ã¯ãã³ããŒãããããå Žåãªã©ã«äŸ¿å©ã§ãã
ãªã³ã¯ãã¯ãªãã¯ãããšãJavaScriptãç°å¢ã§ãã¡ã€ã«ãåçããæºåãã§ããŠãããã©ããã確èªããŸãã æºåãã§ããŠããªãå Žåããªã³ã¯ã¯éåžžã©ããæ©èœããŸãã JavaScriptããŸã£ããèµ·åããªãå Žåãåãããšãèµ·ãããŸãã
æåŸã«ãåçãå©çšå¯èœãªå Žåããªã³ã¯ã®ã³ã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
<a target="_blank" id="player" class=""> <track></track> <playhead draggable="true"></playhead> </a>
ãã¬ãŒã€ãŒã®ã¢ã¯ãã£ããªç¶æ ã§ã¯ãHTMLã³ãŒãã¯3ã€ã®èŠçŽ ã®ã¿ã§æ§æãããŸãããŠãŒã¶ãŒãæäœã§ããã€ã³ã¿ãŒãã§ã€ã¹ã®åã³ã³ããŒãã³ãã«1ã€ã ãã§ãã
- ãŸã ãã¬ãŒã€ãŒå šäœãè¡šããŸãã ãŠãŒã¶ãŒã¯ãã¢ã€ã³ã³ãã¯ãªãã¯ããŠãµãŠã³ããéå§ãŸãã¯åæ¢ã§ããŸãã / ã ïŒã¢ã€ã³ã³çšã®åå¥ã®HTMLèŠçŽ ã¯ãããŸãããaãåç §ããŸããïŒ
- track-ãµãŠã³ããã©ãã¯ã ã¯ãªãã¯ãããšãç¹å®ã®å Žæã«åçãå·»ãæ»ãããšãã§ããŸãã
- åçããã-ãããã¯ã¢ããããããã çŸåšã®åçäœçœ®ã衚瀺ããããã©ãã°ã§ããŸãã
æ¥ãã§ãã¶ã€ã³
-ããã§ã¯ãã³ãŒããæš¡å£ããå¿ èŠããããŸã...
-æ£åœåããªãã®ã¯è¯ãããšã§ãïŒ
ãã®èšèšã¯ãå®è£ ã«äŸåããªãäžé£ã®åºæ¬æ©èœãšããŠãã¬ãŒã€ãŒãè¡šãã¢ãã«ã«åºã¥ããŠããŸããã æãæ®éçãªã¢ãã«ãç¹å®ããããã«ãã·ã¹ãã ãWebã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãªããã³ã³ã¯ãªãŒããããã¯ãŸãã¯ãªã¥ãŒãã®ããçãããã³ã¹ãã¬ã«ã§æ§æãããŠããå Žåã¯ã©ããªãããèããŸããã
ãã®æ®µéã§ã¯ãããšãã°ãé³æ¥œã®éå§ãšåæ¢ããã¬ãŒã€ãŒã®åºæ¬çãªèœåã§ããããé ã®å·Šã®å€ãå€æŽããããå®è£ ã®è©³çŽ°ã§ãããšèšé²ããŸããã ããã«ãããã³ãŒãå ã®ç°ãªãã¬ãã«ã®æœè±¡åãæ··ãããªãããã«ãªããŸããã
ã¢ãã«ãæ¹è¯ããããã«ãç§ãã¡ã¯å€ãã®å³ãšè¡šãæãã誀ã£ãŠãªãªãžãã«ã®ERã¢ããªã³ã°ãæãã€ããã®ã§ãããã«ã€ããŠã¯åŸã§èª¬æããŸãã
å€æ°åãCSSã¯ã©ã¹ãããã³ãã®ä»ã®ãšã³ãã£ãã£ã«ã€ããŠã¯çŽ°å¿ã®æ³šæãæã£ãŠããŸããã é©åãªååã®éžæã«1ã2æéè²»ããããšãã§ããŸããããã®å Žåã¯æ¥ããããããšã§ã¯ãããŸããã ããšãã°ãæåã¯ã¹ã©ã€ããŒãã¹ã©ã€ããŒãŸãã¯ã€ã³ãžã±ãŒã¿ãŒã®ãããããšåŒã³ãŸããããè±èªã§ããã¬ã€ãããããšããå€ãçšèªãããããšãããããŸãããããã¯ãŸãã«å¿ èŠãªãã®ãæå³ããŸãã ç§ãã¡ã¯ããããžã§ã¯ãå šäœã®éå ¬åŒãªååãšããŠã³ããã¯ç¿»èš³ãPlay-headãã䜿ãå§ããããšããšãŠãå¬ããã£ãã§ãã
CSSïŒåçã®ãªããžãªã¡ããª
-ããã¯ãã€ãã£ãã«èŠããŸãããå«ãªããã«èŠããŸã...
åçã¯äœ¿çšããŸããã§ããã ãã¹ãŠã®ãã¬ãŒã€ãŒã®ãžãªã¡ããªã¯CSSã䜿çšããŠæç»ãããŸãã ããšãã°ãããã«ã¢ã€ã³ã³ããããŸã ïŒ
#player::before { content: ''; float: left; margin-right: 6px; width: 0; height: 1px; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 10px solid #999; }
å®éã«ã¯ãã¢ã€ã³ã³ / èŠçŽ aã®æ¬äŒŒèŠçŽ ã®åã«::ãšããŠå®è£ ãããŸãã ãã®ç°¡ç¥åãããJavaScriptïŒé³æ¥œãéå§ããã³åæ¢ããããã«ãã¯ãªãã¯ã¯ãã¬ãŒã€ãŒèªäœã§åŠçãããç¹å¥ãªèŠçŽ ã§ã¯åŠçãããŸããã
åæ§ã«ããããã¡ã®å¡ãã€ã¶ããè¡šãããã«ãåå¥ã®èŠçŽ ãå°å ¥ããã®ã§ã¯ãªãããã©ãã¯ã®èæ¯ç»åãšããŠç·åœ¢åŸé é¢æ°ã䜿çšããŸããã åæç¶æ ã§ã¯ããããã¡ãŒã¯ç©ºã§ããã©ãã¯ã¯çœã§å¡ãã€ã¶ãããŠããŸãã
track { background-image: linear-gradient(to right, #ddd 0%, #fff 0%); }
#dddã®åŸã®å²åã¯ããããã¡ã®æºæ¯ã«å¿ããŠå¢å ãããã©ãã¯ã®äžéšãç°è²ã«å€ãããŸãã ãããã¡ããã£ã±ãã«ãªããšããã©ãã¯å šäœãã°ã¬ãŒè¡šç€ºãããŸãã
ã·ã¹ãã ç¶æ
-ããã¯æŸèæã§ã¯ãªããã¢ããã¿ãŒã§ãïŒ
ã·ã¹ãã ã¯ã次ã®3ã€ã®ç¶æ ã®ããããã«ãªããŸãã
- æºåå®äº-åæç¶æ ã
- SET-ã·ã¹ãã ããã¬ãŒã€ãŒã®ãã¬ã€æºåãæŽã£ãããšã確èªããåŸã
- GO-ãŠãŒã¶ãŒããã¬ãŒã€ãŒãã¢ã¯ãã£ãã«ããåŸã®åäœã¹ããŒã¿ã¹ã
ç¶æ ãåºå¥ããã«ã¯ãã·ã¹ãã ãåãã€ãã³ãã«å¯ŸããŠç°ãªãåå¿ãããããšãéèŠã§ãã ããšãã°ãSETç¶æ ã®ãã¬ãŒã€ãŒãã¯ãªãã¯ãããšãã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãæ¡åŒµãããGOç¶æ ã§ã¯é³æ¥œãéå§ãŸãã¯åæ¢ããŸãã
ç¶æ ã¯ãã³ãŒãããã宣èšçã«æ§ç¯ããã®ã«åœ¹ç«ã¡ãŸããã ããã°ã©ã ã®æåã®ããŒãžã§ã³ã§ã¯ãäºãã«ã€ãªãããaddEventListener / removeEventListenerããæ¯ãããããšã¯ã§ããŸããã§ããããæçµããŒãžã§ã³ãŸã§ã¯ãããã¯å®å šã«åæ¢ããŸããã
stateCtrlç¹æ®ãªããžã§ã¯ãã¯ãç¶æ ã®ç£èŠã«åœ¹ç«ã¡ãŸãã ããšãã°ãstateCtrl.isïŒ 'SET'ïŒã¯ãã·ã¹ãã ãSETç¶æ ã«ããå Žåã«ã®ã¿trueãè¿ããŸãã
äžç®æã§ãã¹ãŠã®åäœ
-åäœãã¹ãã«ã€ããŠã©ãæããŸããïŒ
-ãåç¥ã®ããã«ãã³ãºãã»ãã«ãã³ãã¯ããã«ã€ããŠæ Œèšãæã£ãŠããŸãã...ããããç§ã¯ã©ããå¿ããŸããã åäœãã¹ãã«ã€ããŠèããã®ã¯ããã ãã§ãã
ãããããã®å Žæããæãè¡åçã«å§ãŸããŸãã ãã¹ãŠã®ã·ã¹ãã ã®åäœã¯ã1ã€ã®æ§é ã§èšè¿°ãããŸãããã®å šäœã瀺ããŸãã
var behavior = new Behavior({ window: { DOMContentLoaded: { READY: 'player.set' } }, html: { dragover: 'playhead.pull', drop: ['audio.land', 'stateCtrl.toggle'] }, audio: { timeupdate: { NO_DRAG: ['playhead.move', 'track.augment'] }, progress: 'track.augment', ended: ['audio.pause', 'player.toggle'] // 1 }, player: { click: { SET: ['audio.start', 'player.go', 'stateCtrl.nextActivityState'], GO: 'audio.toggle' // 2 } }, playhead: { dragstart: 'playhead.drag' }, track: { click: 'audio.rewind' } });
åãªããžã§ã¯ãã«ã©ã®ãããªã€ãã³ããæåŸ ããåã€ãã³ãã«å¿ããŠã©ã®ãããªç¶æ ã§äœããããã«ã€ããŠèª¬æããŸãã ããšãã°ã1è¡ç®ã¯ãçµäºããã€ãã³ãããªãŒãã£ãªãªããžã§ã¯ãã§ïŒä»»æã®ç¶æ ã§ïŒçºçãããšãaudio.pauseããã³player.toggleé¢æ°ãåŒã³åºãããããšãæå³ããŸãã 2è¡ç®ã¯ããã¬ãŒã€ãŒãªããžã§ã¯ãïŒããã¯ãã¬ãŒã€ãŒèªäœ-HTMLã®èŠçŽ ïŒã®ã¯ãªãã¯ã€ãã³ãã«ãã£ãŠãã·ã¹ãã ãGOç¶æ ã«ããå Žåãaudio.toggleé¢æ°ãåŒã³åºãããããšãæå³ããŸãã
å®éãã³ãŒãã®æ®ãã®éšåã¯ããã®çŽç²ã«å®£èšçãªèšè¿°ã«ãæ¯ãå¹ã蟌ããããšãšããããæ©èœãããããšã«å°å¿µããŠããŸãã
åãã§preventDefault
-ããŠã2人ã®ãã³ãã©ãŒãåçãããããã©ãã°ããŠåŒãè£ãå§ããŸãã...
äžéšã®ã€ãã³ãã«å¿ããŠãç¹å®ã®ã¢ã¯ã·ã§ã³ãå®è¡ããã ãã§ãªããããã©ã«ãã®åå¿ïŒãªã³ã¯ãã¯ãªãã¯ãããªã©ïŒãé²ãå¿ èŠããããŸãã ããã¯ããã¬ãŒã€ãŒã®ãããžãã¹ããžãã¯ãã§ã¯ãªãããã©ãŠã¶ãŒã§ã®ã€ãã³ãåŠçã®æ©èœãæãããããããåè¿°ã®åäœãšæ··åããªãããšã«ããŸããã
preventDefaultãé 眮ããå Žæã«ã€ããŠã¯ãå¥ã®æ§é ã§èª¬æããŸãã
var modifiers = { preventDefault: ['html', 'track', 'html.dragenter', 'player.click.SET'] };
ããã¯ãpreventDefaultããã³ãã©ãŒã«è¿œå ãããããšãæå³ããŸãã
- htmlããã³trackãªããžã§ã¯ãã®ãã¹ãŠã®ã€ãã³ãïŒåäœã«ãªã¹ããããŠããŸãïŒã
- htmlãªããžã§ã¯ãdragenterã€ãã³ãïŒãã®ã€ãã³ãã¯åäœããŠããŸããïŒã
- ã·ã¹ãã ãSETç¶æ ã«ããå Žåã«ã®ã¿ããã¬ãŒã€ãŒã¯ãªãã¯ã€ãã³ãã
å®è£ å šäœã1ã€ã®å Žæã«ãããŸã
-è©äŸ¡ã®ããã«é»ãèšãïŒ
-setInterval ...ããããããããã¯æªãé»ã§ã...ã€ãŸããé»ã¯è¯ããæªãèãã§ãã
ãã¹ãŠã®æ©èœã®å®è£ ãããã®ã¹ããŒã ã«åŸã£ãŠæ§ç¯ãããå¥ã®æ§é ã§èª¬æãããŠããŸãã
var impl = { Number: { toPercentString: function() { /* ⊠*/ } }, Array: { modify: function(handler) { /* ⊠*/ } }, String: { createListeners: function(behavior) { /* ⊠*/ }, getObject: function() { /* ⊠*/ }, modify: function(handler) { /* ⊠*/ }, }, HTMLElement: { move: function() { /* ⊠*/ }, // ⊠. . ⊠}, // ⊠. . ⊠};
ãã®æ§é ã®ããŒã¯ãã¯ã©ã¹ãã®ååïŒããæ£ç¢ºã«ã¯ãããã¿ã€ãïŒã§ãããå€ã¯ãããã®ãã¯ã©ã¹ãã®ã€ã³ã¹ã¿ã³ã¹ããåŒã³åºãããé¢æ°ã®ãªã¹ãã§ãã ããšãã°ãmoveé¢æ°ã¯ããããã¿ã€ããHTMLElementã§ãããã¬ã€ããããªããžã§ã¯ãããåŒã³åºãããŸãã
çŸåšã®ã·ã¹ãã ã§ã¯ãé¢æ°ã¯å¯Ÿå¿ãããããã¿ã€ãã«çŽæ¥æ¥ç¶ãããŠãããããã³ãŒã·ã£ã³ãŒããå€å°æãªãããŸãã å°æ¥çã«ã¯ãããæ£ç¢ºãªç¶æ¿ã確ç«ããŸãã
å¥ã®æ©èœïŒimplã®é¢æ°åãgetã§å§ãŸãå Žåãããã¯æ¬æ Œçãªã²ãã¿ãŒãšããŠä»å ãããŸãã ããšãã°ãgetObjecté¢æ°ã¯ãstring.objectãšããŠåŒã³åºãããšãã§ããããããã£ã«ãªããŸãã
ã©ãã§ãã
-èšç»ã¯æ¬¡ã®ãšããã§ãããŸããã¯ãªãŒã³ã§ãªãé¢æ°ãäœæãã次ã«ã¯ãªãŒã³ã«ããŸãã æ©èœã®æŽæ¿¯ïŒ
ã¹ã¯ãªãããèµ·åãããšãç¹å¥ãªãã©ãã¯ããžãã¯ãããªã¬ãŒãããŸããããã«ããããã®å®£èšããã¹ãŠæ¶åãããæçµçã«é³æ¥œã鳎ããŸãã
- å¥ã®ãµã€ã¯ã«ã§å®è£
å®è£
ã®ãªã¹ãã調ã¹ãåé¢æ°ã察å¿ãããããã¿ã€ãã«æŒã蟌ã¿ãŸãã ããã¯ãç¹å¥ã«äœæãããaddPropertiesã¡ãœããã䜿çšããŠè¡ãããŸãããã®ã¡ãœããã¯ãæšæºã®Object.definePropertiesã«äŸåããŠããŸãã
for(var typeName in impl) { window[typeName].addProperties(impl[typeName]); }
- å¥ã®ç¹å¥ã«èšè¿°ãããmodifyã¡ãœããã¯ãããã€ãã¢ãªããžã§ã¯ãïŒãããžãã¹ããžãã¯ããæ ŒçŽãããŠããïŒãå€æŽããmodifiersãªããžã§ã¯ãããpreventDefaultsãè¿œå ããŸãã
behavior.modify(modifiers);
- æåŸã«ã3çªç®ã®ç¹å¥ãªcreateListenersã¡ãœããããŠã£ã³ããŠã«é©çšãããå€æŽãããåäœã§èª¬æãããŠãããŠã£ã³ããŠã€ãã³ããã³ãã©ãŒãããã¯ããŸãã
'window'.createListeners(behavior);
ããã«ãããDOMContentLoadedããŠã£ã³ããŠäžã§çŽã¡ã«ããªã¬ãŒããããã¹ãŠãå§ãŸããŸãã æ®ãã®ãã³ãã©ãŒã¯ãé©åãªã¿ã€ãã³ã°ã§åã ã®é¢æ°å ã«ãã³ã°ã¢ããããŸãã ããšãã°ãhtmlãplayerãããã³audioãªããžã§ã¯ãã®ãã³ãã©ãŒã¯ãããŒãžã®ããŒãåŸã«éå§ãããseté¢æ°å ã«äœæãããgoé¢æ°å ã®ãã©ãã¯ããã³åçãããã®ãã³ãã©ãŒã¯ããã¬ãŒã€ãŒãã¢ã¯ãã£ãåãããåŸã«éå§ãããŸãã
['playhead', 'track'].createListeners(behavior);
ãã®çµæããaddEventListenerããšããåèªã¯ãã³ãŒãå šäœã§1åã ãèšåãããŸãã
é»éè¡ã«ã€ããŠããå°ã
-ç§ãã¡ã¯ãããè¡ãå¿ èŠããããŸã...
JavaScriptã§å®£èšåã¹ã¿ã€ã«ã§ããã°ã©ãã³ã°ããããšãããšãå¿ ç¶çã«ã³ãŒãã«ç¥ç§çãªåªæãçããããããã©ãã¯ããžãã¯ã«ã€ããŠèšåããŸããã ããšãã°ãcreateListenersã¡ãœããã¯ã次ã®ããã«å®çŸ©ãããããªã¢ãŒãã£ãã¯ãŠã©ãŒã¯ã¡ãœããã䜿çšããŠãåäœã®å éšãååž°çã«èµ°æ»ããŸãã
for(var typeName in walkers) { // Object, Array, String window[typeName].addProperties({ walk: functools.partialLeft( function(name, params) { walkers[name].call(this, params); }, typeName ) }); }
ããã§ãç§ãã¡ã¯è³ã§Pythonããã©ãã°ããŸããããã®ã³ãŒããæ©èœããããã«ãpartialLeftãåŒã³åºããŠfunctoolsã®ãã¢ãžã¥ãŒã«ãã«å ¥ããŸããã
次ã«ãpartialLeftã¯ãã«ããŒé¢æ°é åã䜿çšããŠããã¹ãŠãé åã«å€æããŸãã ãã©ãã¯ããžãã¯ãšã¯äœã§ããïŒ
ãã®f話ã®æèš
ãååšããªãã³ãŒããå床ãªãã¡ã¯ã¿ãªã³ã°ããŠããŸããïŒã
ãæ°ã¥ãã®ããã«ããã®ã¹ããŒãªãŒã§ã¯ãAudioãªããžã§ã¯ãã®æäœããã¡ãã£ã¢ãã¬ãŒã€ãŒã®ä»ã®ç¹å®ã®æ©èœã«ã€ããŠã¯ã»ãšãã©äœããããŸããã ããã¯ããã®åéã§ã¯èŠäºãªãã®ãäœæããªãã£ãããã§ãã ç§ãã¡ã®ãã¬ãŒã€ãŒã¯ãä»ã®æ°çŸã®ã¢ããã°ãšã»ãŒåãé³ãåºããŸãã
ãããã宣èšåã¢ãŒããã¯ãã£ã¯ããã®äžå¿ã«ãã¹ãŠã®ã·ã¹ãã åäœãåããåäœãªããžã§ã¯ããããããã®ãã¬ãŒã€ãŒã ãã§ãªãä»ã®ãããžã§ã¯ãã§ã䜿çšããããšãçŽæããŠããŸãã ãã¶ããæéã®çµéãšãšãã«ãããããå³æžé€šãæé·ããä»ã®ãã¹ãŠãäžåèªã«ããåã£ãŠä»£ããã§ãããã
ãããŸã§ã®éãããã¹ãšç§ã¯æ¢åã®ã³ãŒãã磚ãç¶ãããã¬ã€ãªã¹ããè¿œå ããŠã¢ã«ãã å šäœããµã€ãã§èŽããããã«ããŸãã