2009-05-31

WinMerge

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
windiffというツールがあるのですが、
windows環境でファイルの差分をディレクトリ単位でも比較できる結構便利なツールです。
linuxを使って入れば、普通にdiffを使っていればいいのですが、なんだかんだでwindowsでも確認したいことがあったりします。

それがさらにちょっと便利になったWinMergeというものを最近使っています。
便利な点としては、3つのファイルを比較できるというのが以外に便利だったりして重宝していたりしているのです。

WinMergeは、以下から取得できます。
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html

2009-05-30

Google App Engineの一つのアプリケーションでいろいろ実験する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Google App Engineは、無料で使えるのは10個のアプリケーションなわけです。
ある実験サイトを作ろうと思ったときに、localだけでは実験しきれないことがどうしてもあります。
たとえば、iアプリとかと連携したサイトで実際に端末にダウンロードして実験したいときなどはデプロイするしかありません。

でも、あくまでも実験なので実験のたびに貴重なアプリケーションを浪費するわけにはいかないなぁと思っていたのです。

実験用のものを一つ用意して、その一つを使い回せばいいのですが、上書きすると消えちゃうので、それはそれで困ることもあるかも。と思っていたのです。

ですが、残しておきたければversionを変えておけばよいだけということを
http://www.atmarkit.co.jp/fjava/rensai4/gaej01/gaej01_4.html#08
を見て今更ながらわかってみました。

アクセスできるのは、デフォルト設定されたversionのものだけのようですが、どうせ実験なので実験するときだけversionを変えればよいわけですね。

最近Google App Engineにはjavaも追加されたわけですが、一つのアプリケーションにversionを変えてjavaとpythonは共存できるようです。

なので今更ながら、実験用に一つアプリケーションを増やしてみました。

2009-05-26

たまご型ストラップ・データケーブル

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


一見、なんの変哲もないストラップに見えますが、実はUSBケーブルなのです。
たまごの中に端子が隠されていたりします。

ちょっと携帯を機種変したので携帯をいろいろ使い倒したいなぁと思っていてPCとの接続もオラオラやりたいと思ったわけです。
そのためにはストラップがケーブルっていいんじゃないと思って探したらあったのでキニナルのです。
私の携帯だと、本当はUSB miniをさらに携帯のコネクタに変換しないといけないのですけどね。

本当はデザイン的には、

の方がキニナルのですが、あんまし評判が・・・

この手の商品はデザインのもっとよいものがあれば、結構売れる気がするのですけどねぇ。

2009-05-20

マスキングテープ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


なんかを塗るときのはみだし防止のマスキングテープなわけですが、最近おしゃれな感じのマスキングテープも出てきました。
マスキングテープですが、手で簡単に切れるというのがすごく使い勝手がいいのでオススメなのです。
ちょっと仮に壁にはるとかでもオシャレさんなテープであれば、ステキな感じになりますしね。

キッズテント

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


ダンボール製のちっちゃいテントなのです。
空いたダンボール箱を見かけたら、とりあえず入ってみたくなるお子様などには、とてもキニナルこと間違いなしです。
ダンボール製なので、自分用に色を変えたり絵を描いたりできるので、そんなところもステキな感じです。

2009-05-15

ルミノドット

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://www.luminodot.jp/


自分の好きなようにドットのピンをさしていって、それが光るというのがステキでキニナルのです。
光り方もいろいろある感じでウェルカムボードみたいに使ったりするのもステキな気がします。
オシャレな部屋の演出に一役買いそうなものだと思うのです。

歌詞GET

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://www2.kget.jp/

タイトルは知っているけど、歌詞はうる覚え。そんな時に歌詞を知りたい時に役立つサイトです。
このサイトでは、番組名やフレーズの一部からでも曲を検索することもできるのです。

そして歌詞は表示されますが著作権上の問題でコピーや保存はできませんので、必要ならばこのサイトを見ながら書き残すしかないかもしれません。
印刷もできなそうですしね。
どうしても楽に残したければスクリーンショットを取っておくことで多少は対応できるかもしれませんけど完璧には無理ですねぇ。

なのでちょっと気になる時に役立つオススメサイトという感じです。

家庭常備菓子

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://www.orionstar.co.jp/onrainsyapingu.html

オリオンという会社が出しているちょっと遊び心のあるお菓子の詰め合わせセットです。
オリオンという会社は、一度はどっかで見たことがあるような気がするココアシガレットを作っている会社でもあります。
本当に家に常備することはないと思うけど、人が集まる時にでも一つ買っておくと楽しんでもらえそうでキニナルのです。

ホワイトボードカレンダー

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://www.1101.com/store/calendar/index.html


ほぼ日刊イトイ新聞で紹介しているホワイトボードカレンダーです。
壁掛けカレンダーが、ホワイトボードと同じ感じて使えるというものです。
これは、何かと便利そうでキニナルのです。
カレンダーに書き込みをしたりはしているのだけど、用事だけ書き込んでいるだけだと結構覚えてしまってあんまり見なくなっているような気がします。
でも、ホワイトボードならば、消すこともできるのでメッセージボードとしても使えるのが便利な気がします。
ここで紹介しているのは、ほぼ日で紹介しているホワイトボードカレンダーではないし、最初に気になったものとはちょっと違うのだけど、カレンダーとホワイトボードとウォールポケットが一緒になってるのでこれはこれで便利そうだな~~。

ActionScriptでマウスがのると大きくなるフキダシを作る

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
SOBARCO用に作ったブログパーツでは、小さな吹き出し部分にマウスを持ってくると大きくなってコメントが見れるようにしてみました。
まず吹き出しをActionScriptで作る方法は、

にきっちり書いてあったので、そちらを参考にさせていただきました。

これを改良して、マウスが来ると大きくなるような修正をしてみました。
マウス動作の部分を中心に抜粋した感じですが以下のような感じです。

package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import caurina.transitions.Tweener;

public dynamic class Fukidashi extends Sprite {
public var max_width:uint;
private var max_height:uint;
private var min_width:uint;
private var min_height:uint;
private var start_x:uint;
private var start_y:uint;
private var end_x:uint;
private var end_y:uint;
private var set_pos:Boolean = false;
private var zoom_on:Boolean = false;

public function Fukidashi(fillColor:Number = 0xEDE5D7, max_w:uint = 70, max_h:uint = 35, min_w:uint = 18, min_h:uint = 9) {
max_width = max_w;
max_height = max_h;
min_width = min_w;
min_height = min_h;
var canvas:Sprite = new Sprite();
var fukidashi:Sprite = createFukidashi(canvas, fillColor);
//回転の中心が左下になるように移動する
addChild(fukidashi);
max_width = fukidashi.width;
max_height = fukidashi.height;
buttonMode = true;
set_minisize();
addEventListener(MouseEvent.ROLL_OVER, overHandler);
}

private function set_minisize() : void {
width = min_width;
height = min_height;
}

public function set_position(sx:uint, sy:uint, ex:uint, ey:uint) : void {
start_x = sx;
start_y = sy;
end_x = ex;
end_y = ey;
set_pos = true;
}

public function overHandler(event:Event):void {
if (set_pos) {
zoom_on = true;
Tweener.addTween(this, {x:end_x,y:end_y,width:max_width,height:max_height,time:0.1,transition:"easeOutBack",onComplete:tweenEnd} );
} else {
width = max_width;
height = max_height;
}
}

public function outHandler(event:Event):void {
if (set_pos) {
zoom_on = false;
Tweener.addTween(this, {x:start_x,y:start_y,width:min_width,height:min_height,time:0.2,transition:"easeOutBack",onComplete:tweenEnd} );
} else {
width = min_width;
height = min_height;
}
}

public function tweenEnd() :void {
if (zoom_on) {
removeEventListener(MouseEvent.ROLL_OVER, overHandler);
addEventListener(MouseEvent.ROLL_OUT, outHandler);
} else {
removeEventListener(MouseEvent.ROLL_OUT, outHandler);
addEventListener(MouseEvent.ROLL_OVER, overHandler);
}
}

//フィールドを囲む吹き出しを作る
private function createFukidashi(canvas:Sprite, fillColor:Number) :Sprite {
var fldW:uint = max_width;
var fldH:uint = max_height;
//吹き出しを描く;
var w:uint = Math.ceil(fldW * 1.1);
var h:uint = Math.ceil(fldH * 1.4);
canvas.graphics.lineStyle(1, fillColor);
canvas.graphics.beginFill(fillColor);
canvas.graphics.drawRoundRect(0, 0, w, h,10,10);
canvas.graphics.endFill();
canvas.graphics.beginFill(fillColor);
canvas.graphics.moveTo(w * 0.15, h * 1.3);
canvas.graphics.lineTo(w * 0.35, h);
canvas.graphics.lineTo(w * 0.25, h * 0.5);
canvas.graphics.endFill();
return canvas;
}

}

}

本来ならば、フキダシにメッセージを入れたり、フキダシに輪郭線があったりするのですが、そこまでいれるとあまりにも本の内容そのままなので、そこは抜粋しているので気になるときは本を見てみてください。

あと、なぜか作ったブログパーツではマウスがフキダシの左側にあるとイベントをうまく拾ってくれなかったり、ROLL_OVERのイベントが連続で発生したりとかちょっとおかしな感じになっているのですが、よくわからなかったのでそのままにしてみました。

2009-05-12

MOUSE_OVER,ROLL_OVERの違い

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ActionScriptではいろんなイベントをいい感じで利用できるようになるのが重要な感じですが、そのなかでMouseEventの
MOUSE_OVER
ROLL_OVER
の違いがわかりにくいですが
http://blog.flair4.jp/2007/12/-as30-mouse-overroll-over.html
がわかりやすく説明しています。

一言で違いをいうとオブジェクトが重なっているときの振る舞いの違いです。
なので重なってなければどっちでも同じだと思います。

flashdevelopではtweenは使えない?

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
tweenとは、拡大とか移動とかシンプルなflashのアニメーションを簡単に実装するためのオブジェクトです。

利用する際には、
import fl.transitions.Tween;
とするらしいのですが、
flashdevelopを利用している場合は、importできないようです。

設定が悪いのか、TweenはCS3とか製品版で利用できるものということなのか
ちょっとわからないのですが、tweenが使えなくても代わりに
tweener
というものが使えます。

http://d.hatena.ne.jp/flashrod/20070527
が参考になります。

tweenerのzipファイルを取得したら、解凍してできた
caurina
というディレクトリをActionScriptのメインとなるスクリプトを置いているディレクトリに置くことで利用できます。

ブログパーツでは、吹き出しの上にマウスを置くと大きくなるアニメーションで利用してみました。

TextField上のカーソル形状をI型でなくす

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
flash上の普通にTextFieldをaddChildした場合には、そのTextFiled上にマウスがきたらテキストが選択できるようにI型のカーソルになります。
たんなる画面上の表示要素にしたい場合は、他の部分と同じカーソルになってもらいのです。
そんなときは、TextFieldのselectableをfalseにすることで変更できます。

ちなみにクリックするときのようにカーソルを指形状にしたいときは、指形状にしたいSpriteオブジェクトのbuttonModeをtrueにすればできます。

flashの画面上の要素に影をつける

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ActionScriptで画面に表示するオブジェクトになんらかの効果をつけるには、
.filters
メソッドに適用するフィルター効果のオブジェクトをセットするといいようです。
オブジェクトに影をつける効果のオブジェクトは、
DropShadowFilter
です。
使い方は、

import flash.filters.DropShadowFilter;

・・・

var filter : DropShadowFilter = new DropShadowFilter();
filter.distance = 2;
var box : Sprite = new Sprite();
box.graphics.drawRect(0, 0, 50, 50);
box.filters = [filter];

みたいな感じです。
DropShadowFilterは、影をつける以外にdistanceを0に設定することでオブジェクトの輪郭線を描くことにも使えます。
四角とか丸に対して輪郭線をわざわざDropShadowFilterを使ってつけることはないと思いますが、Sprite上にいろんな図形を組み合わせたちょっと複雑なgraphicに対して輪郭線をつけるには便利な感じです。

ActionScriptでwebページを開く

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
flashコンテンツでどっかをクリックしたら関連ページを開くとかを実装する時に使うのは、
navigateToURL
という関数で、
navigateToURL(new URLRequest(urlPath));
みたいな感じで使います。

AmazonのProduct Advertising APIの署名

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
8月からamazonのWEBサービスを使うためにはリクエストに署名を追加する必要があるそうです。

pythonでこれに対応するコードは、
http://mudaimemo.blogspot.com/2009/05/amazon-product-advertising-apipython.html
を見れば完璧です。Google App Engineでもそのまま利用できます。

ちなみにperlで利用するには、
http://chalow.net/2009-05-09-1.html
が参考になります。

javaの場合は、amazonのサンプルがそのまま使えます。
http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html

ついでにrubyも調べてみましたが
http://postcard.blog.ocn.ne.jp/itazura/2009/05/product_adverti.html
が参考になりそうです。

おまけにphpは
http://d.hatena.ne.jp/p4life/20090510/1241954889
が参考になりそうです。

発表されてから数日なのに皆様対応がはやいです。

2009-05-10

画像の読み込み完了を検知する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
xmlなどを読み込む場合には、URLLoaderオブジェクトを使って読み込み完了の検知は、
URLLoaderオブジェクト直下のaddEventListenerでEvent.COMPLETEを以下のような感じでセットすればよいわけですが、

var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, loadCompleteHandler);

これと同じノリで、web上の画像を読み込もうとしたわけなのですが、読み込み完了が検知できなかったのです。
調べたところimageの場合は、
LoaderオブジェクトのcontentLoaderInfoのaddEventListenerにイベントを登録する必要がありました。
以下のような感じです。

var myImgLoader:Loader = new Loader();
myImgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteHandler);

ちょっとややこしかったのでメモです。

TextFieldのサイズにあわせて表示テキストを途中で区切る

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
テキストフィールド1行ではみ出した場合の末尾に「…」をつけたい場合の例として
http://level0.kayac.com/2008/05/textfield_sample.php
が参考になりまして、こちらを改良して
幅と高さのテキストフィールドを用意して、このテキストフィールドをはみだす場合は、末尾に「…」をつけてみました。

var sample_tf : TextField = new TextField();
sample_tf.width = 100;
sample_tf.autoSize = TextFieldAutoSize.LEFT;
sample_tf.selectable = false;
sample_tf.multiline = sample.wordWrap = true;
sample_tf.text = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわ";
var need_dot:Boolean = false;
var max_height = 30;
while ( sample_tf.height > max_height ) {
sample_tf.text = sample_tf.text.slice( 0, sample_tf.text.length -1 );
need_dot = true;
}
if (need_dot) {
sample_tf.text = sample_tf.text.slice( 0, sample_tf.text.length -1 ) + "…";
//削除した文字がたまたま半角文字だと「…」をつけると
//heightをオーバーする可能性があるので念のためもう一度チェックを入れる
if (sample_tf.height > max_height) {
sample_tf.text = sample_tf.text.slice( 0, sample_tf.text.length -2 ) + "…";
}
}

ブログパーツの帯のタイトル部分と吹き出しの部分でこれを利用しています。

2009-05-08

開発中のflashコンテンツのサイズ指定

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
開発中のflashコンテンツのサイズを指定するには、

package
{
[SWF(width = "120", height = "194")]

public class AAA {
}
}

のようにSWFで指定してやればよいようです。

flashコンテンツを呼び出すhtmlの書き方

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://coderepos.org/share/wiki/suzunari
を参考にさせていただきました。

今回は、以下のような感じです。

<object type="application/x-shockwave-flash"
id="http___sobarco_blog_parts_swf"
data="swfファイルの置き場所を指定" style=""
height="194" width="120">
<param name="wmode" value="transparent">
<param name="allowScriptAccess" value="always">
<param name="scale" value="noScale">
<param name="flashvars" value="aaa=val1&bbb=val2">
</object>

objectタグ内のdataでflashファイルが置いてある場所を指定します。
読み込んだflashの表示サイズをwidthとheightで指定します。
idの値は適当でよいとは思うのですが、blogパーツの場合は人様のサイトに貼っていただくのでありがちなidにするとサイトで利用しているcssの影響を受けるかもしれないので、いい感じにかぶることのなさそうな名称がいい気がします。


<param name="wmode" value="transparent">

で読み込んだflashの背景を透明にするようにしています。


<param name="flashvars" value="aaa=val1&bbb=val2">

で読み込んだflashに対してパラメータを与えています。

後のparamタグのallowScriptAccessとscaleに関しては、正直よくわかりません。

htmlに記載されたパラメータをActionScriptで受け取る

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
flashを呼び出すHTMLには、パラメータを記載できます。
以下のような感じで記載します。

ActionScriptで利用するには、

var flashvars:Object = loaderInfo.parameters;
var a:String = flashvars["aaa"]; //val1
var b:String = flashvars["bbb"]; //val2

という感じです。
スクリプトが実行されるとloaderInfoという値が勝手にセットされるようで、ここにhtmlから読み込んだ値が設定されているようです。

flash内に事前に用意した画像を埋め込む

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ブログパーツには、事前に用意した画像をいくつか埋め込んでいます。
ActionScriptでこの画像を利用するには、
Embed
というのを使うようです。
参考になるのは、
http://gihyo.jp/dev/feature/01/box2d/0006
です。
いい感じで普通のオブジェクトとして利用できます。

ブログパーツの通信終了待ちのグルグル回転

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今回のブログパーツは、サイトと通信をしています。
なので通信が終わるまでは表示されないものが多く殺風景なため、よくあるflashサイトのようになんかしらのloading中のアクションを入れてみようと思って検索したところ
http://blog.garden-place.jp/oborobeer/item_198.html
がいい感じでしたので利用させていただきました。

こちらのサイトで紹介されているスクリプトをコピーして、ブログパーツ用のaction scriptファイルが置いてある場所と同じ場所に
LoadingPicture.as
という名前で保存しました。

そして、サイトの例にあるとおりLoadingPictureのインスタンスを作成して、ブログパーツ用クラスのコンストラクタでshowメソッドとstartメソッドを呼んでいます。
そして通信の完了イベントがイベントリスナーで検知して、イベント検知後に呼ばれる関数内でLoadingPictureのremoveメソッドを呼んでグルグルを消しています。

大雑把に書くと、以下のような感じです。

package
{
import flash.display.*;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.text.TextField;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class BlogParts extends Sprite {
private var loading : TextField = new TextField();
private var loadPic : LoadingPicture = new LoadingPicture(30, 10, 9, 12, 0xC79810, 0xDDEEDD);

public function BlogParts() {
loadPic.show(this,stage.stageWidth/2,stage.stageHeight/2);
loadPic.start();
loading.text = "loading...";
addChild(loading);
loading.x = stage.stageWidth/2 - loading.textWidth/2;
loading.y = stage.stageHeight/2 - loading.textHeight/2;
loadXML();
}

private function loadXML():void {
var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, loadCompleteHandler);
myLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
var urlPath:String = "http://aaaaa";
myLoader.load(new URLRequest(urlPath));
}

private function removeLoading():void {
removeChild(loading);
loadPic.remove();
}

private function errorHandler(e:IOErrorEvent):void {
removeLoading();
//以下でエラー処理を行う
}

private function loadCompleteHandler(event:Event):void {
removeLoading();
var loadedXml:XML = new XML(event.target.data);
//以下で読み込んだxmlを処理する

}
}

}

ブログパーツのサイズ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ブログパーツのサイズを調べるとだいたい横が120pxか160pxが多い感じのようです。
googleのアドセンスが横120pxなので今回作成したブログパーツは120pxにしてみました。
縦のサイズに関しては、作るもの次第なのでしょうが今回作成したものは縦横比を黄金比にしてみようと思い194pxにしてみました。
ちなみに黄金比は、1:1.618です。

BLOGパーツを作るために作ったもの

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
今回のBLOGパーツを作ってみたさいに必要になったものは、以下のものです。
・ブログパーツ貼り付け用スクリプト紹介ページ
・ブログパーツ貼り付けスクリプトから呼ばれる、flashを表示するためのjava scriptを表示するページ
・ブログパーツ本体のflash
・ブログパーツが通信を行うページ
flash以外にも3つほど機能が追加になったのでした。

BLOGパーツを作ってみました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
SOBARCO用のブログパーツをActionScriptで作ってみました。

本は、

がとてもわかりやすくてよかったです。
他の言語を知っていれば、それほどガッツリ読まなくてもダイジョブですが、ActionScript独特なこと(フレームの概念)とかが結構、しっくり理解できました。
つづけて

も読みました。こちらもとても参考になりました。
こちらは、具体的な事例集という感じで要所要所ブログパーツを作る際に参考にさせていただきました。

ActionScriptは、やっぱりプログラム言語とは違うノウハウは必要ですねぇという感じです。
イベントとかアニメーションの手法とかがあまり見てくれ系の経験がないので新鮮なことが多いです。
独特なものも多いですが、うまくクラス化されているのでクラスを理解すればいい感じではあります。

web上の資料では、やはりAdobeのサイトが一番役に立ちました。
http://help.adobe.com/ja_JP/Flash/10.0_Welcome/WS091A3800-D889-4425-B647-C44097B73F34.html

ブログパーツを作っていくうえで知ったこともまとめてご紹介していこうと思っています。

2009-05-02

ひもくるりん

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


新聞などを紐で束ねるときに、これを使うと簡単にしっかり束ねることができるらしいです。
どれくらい簡単にできるのかがキニナルのです。

筆ごこち

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク


サインペンに見えますが、筆ペンです。
そして普通の筆ペンよりもペン先が硬く書きやすいため、字がうまくかけているような気がするらしいです。
そこがキニナル!

アドベンチャーワールド

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
http://aws-s.com/index2.html

アドベンチャーワールドは、和歌山県の南紀白浜空港から車で5分ぐらいの動物園と遊園地の複合施設です。

こちらはパンダがいっぱいいることで有名な動物園なわけですが、それ以外にもなかなかステキなところがあるオススメなスポットなのでした。

個人的なオススメポイントは、
動物との距離が近い
というところだと思います。

特に、サファリゾーンの餌やりタイムでは実際にゾウやキリンに餌をあげることができるのです。
特にゾウはオモシロいですよ。いい感じで鼻で餌を持っていきます。なかなか楽しいです。
200円で餌を売っていたのですが思わず追加購入してしまいました。

他にも、売りであるパンダもいっぱいいるので、とても良いです。パンダは同時にいっぱい見れる方が楽しいのねとも思わせてくれます。

あと、イルカショーも見れるのですが10匹以上が同時に出てくるショーを始めてみたのでこれも楽しかったです。

遊園地は特にこれという感じでもないのですが、動物園はとても楽しかったです。
だいたい丸一日は遊べます!