開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
Head First JavaScript ―頭とからだで覚えるJavaScriptの基本( Michael Morrison (著), 豊福 剛 (翻訳)、オライリージャパン)の3章(ブラウザを調べる)、自分で考えてみよう(p.103)をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
自分で考えてみよう(p.103)
コード
sample.html
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>sample</title>
<link rel="stylesheet" type="text/css" href="sample.css" />
</head>
<body>
<div id="smile_div">
<img id="smile_img"
src="http://farm8.staticflickr.com/7455/12009424956_d02b583696_o.png"
alt="smile" />
</div>
<script type="application/dart" src="sample4.dart"></script>
<!-- for this next line to work, your pubspec.yaml file must have a dependency on 'browser' -->
<script src="../packages/browser/dart.js"></script>
</body>
</html>
sample.css
#smile_div{
margin-top: 100px;
text-align: center;
}
#smile_img{
cursor:pointer;
}
sample.dart
import 'dart:html';
import 'dart:js' as js;
import 'dart:async' as async;
void main(){
smile_img.onClick.listen((MouseEvent ) => touchSmile());
resizeSmile();
greetUser();
}
ImageElement smile_img = querySelector('#smile_img');
BodyElement body = querySelector('body');
String user_name = '';
void greetUser() => window.alert('こんにちは、私は SMILE です。');
void touchSmile(){
if(user_name != ''){
window.alert('$user_nameさん、声をかけてくれてありがとう。');
} else {
user_name = js.context.callMethod('prompt', ['あなたのお名前は?']);
if(user_name != ''){
window.alert('はじめまして、$user_nameさん。');
smile_img.src = 'http://farm4.staticflickr.com/3799/12008611555_9737b8ac4b_o.png';
}
var t = new async.Timer(new Duration(minutes:5),
() => smile_img.src =
'http://farm8.staticflickr.com/7455/12009424956_d02b583696_o.png');
}
}
void resizeSmile(){
smile_img.style.height = '${(body.clientHeight - 100) * 0.9}px';
}
0 コメント:
コメントを投稿