« 2009年8月 | メイン | 2009年11月 »

wonderflでセキュリティサンドボックスに悩む

試しにCheckmateをやろうと思ってはまったのでメモ。

ローカル上で普通に動いたので、「いざ、わだふる」と思いつつコードをアップすると、セキュリティサンドボックスが・・・。

どうやら、外部ドメイン画像をBitmapDataにしてdrawするとでるみたい。
ちょっと調べてみたら、ドンピシャの記事(_level0さん)があったので、助かりました!
正確には、記事内ので紹介されていたこれに助けられました。
要は、外部ドメインの画像に対して、LoaderContextをtrueにしなさいよってこと。

var context:LoaderContext = new LoaderContext(true); //ここ!
loader = new Loader();
loader.load( new URLRequest("http://swf-dev.wonderfl.net/static/assets/checkmate04/tree.jpg"), context ); //第2引数で
LoaderContextを指定
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);


で、やっとアップできたのがこれ。




2009年10月19日 00:21

プライベート作品を1本公開しました。

仕事終わってから粛々と長いこと作ってきたサイトをやっと公開しました。
細かい調整できてないけど形はできたので、まぁいいか。
いやー本当に長かった・・・。

fael01.png

fael02.png


1年半前にオカンの写真サイトFaELを作って、ちょっと更新面倒だし飽きてきたから、
思い切って作り直すかって感じで始めたのがきっかけ。

ちょうどActionScriptの勉強中だったってこともあって、どうせやるならフルスクリプトでやってやろかなと思い、超シンプルな作りを目指しました。

作りは単純で、XMLに記述した写真を読み込むだけ。
記述するXMLはこんな感じ。

    //   
    <photo>   
         <tags>SKY</tags>
         <src>photo/ph050.jpg</src>
        <thumbnail>photo/ph.s50.jpg</thumbnail>
    </photo>   
    //   
    //   
    <photo>   
         <tags>ANIMAL</tags>
         <src>photo/ph051.jpg</src>
        <thumbnail>photo/ph.s51.jpg</thumbnail>
    </photo>   
    //   
    //   
    <photo>   
         <tags>LANDSCAPE</tags>
         <src>photo/ph052.jpg</src>
        <thumbnail>photo/ph.s52.jpg</thumbnail>
    </photo>   
    //   


素人ながら「簡単じゃん」と思ってやり始めたら、サムネールの配置とか、カテゴリのソート機能とか、ブラウザリサイズとかマウスホイールの実装とか色々つまずいた・・・。

ただ、意地でもFLAには一切の記述なしで作りたかったから、メインタイムラインには何も置いてません。

おかげでだいぶAS3を理解できました。
ソースはぐちゃぐちゃだけれども。

こんな調子で色々作っていきたいと思います。

2009年10月 4日 22:37

フルFlashサイトで最小サイズを決めるときにswffitが良いみたい。

フルFlashサイトを作る時にブラウザ画面の最小サイズを決めておくことがあります。
AS側で最小サイズの場合の処理を書いても良いけどなかなか面倒。

そこで活躍するのがswffit。
詳しくはこちらサンプルもあります。

swfobjectばりに有名らしいですが、知りませんでしたよ。ええ。
で、今回swffitを使う場合に初歩的なミスではまったので、メモ。

swffitを使用する場合はswfobjectと併用しなければ動作しません。
そこでHTMLのヘッダに下記を記述。

<script type="text/javascript" src="swffit.js"></script>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var vars = {};
var params = { scale:"noscale", menu:"false", allowScriptAccess:"samedomain", allowFullScreen:"true" };
var attributes = { id:"flashContent", name:"flashContent" };
swfobject.embedSWF("index.swf", "flashContent", "100%", "100%", "9.0.45", "expressInstall.swf", vars, params, attributes );
swffit.fit("flashContent", 1000, 600);
</script>


swffit.fit("flashContent", 1000, 600);1000, 600が今回指定したい最小サイズ。
これで一件落着。

と、思ったら全然効きません。
小1時間はまって心が折れそうになりつつも悪戦苦闘してましたが、
よくよくソース見てみると・・・

<script type="text/javascript" src="swffit.js"></script>
<script type="text/javascript" src="swfobject.js"></script>

・・・読み込み順が逆じゃね?

ということで、上記ソースを以下のように修正したら全然動きました。

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="swffit.js"></script>


と、久々のブログ更新でした。

2009年10月 4日 15:06