Flash:ブラウザのスクロール状態を取得(修正版)
2012.01.18
以前書いた、
Flash:ブラウザのスクロール状態を取得
という記事のスクリプトを修正したものになります。

JSとFlashでやり取りして、ブラウザのスクロールやサイズの情報をFlashに渡す、というもの。

修正と言いつつも、問題があったデータ取得の部分以外にも
データの受け渡し方などを変更しているため、
実際はほぼ作り直しになっています。

デモ
ダウンロード

取得したデータを使って、情報ウインドウが中央になるようにしています。
ブラウザ幅が広くても狭くても、情報ウインドウが見えるはず。


| コメント(0) | トラックバック(0)
Flash:シェアボタンを設置
2011.11.30
Flashでのシェアボタンの設置方法です。
HTMLで<a>タグにパラメーターを与えるのと同じように、
getURLのアドレスにパラメーターを加えることで作成できます。

■twitter
------------------------------------------------------------------------------
getURL( "http://twitter.com/share?url=http://www.gravity-works.jp/&text=twitterテキスト" , "_blank" );
------------------------------------------------------------------------------

■Facebook
------------------------------------------------------------------------------
getURL( "http://www.facebook.com/sharer.php?u=http://www.google.co.jp/" );
------------------------------------------------------------------------------

ただし、上記のように日本語を使う場合は
そのままではエラーが出てしまうので、UTF-8でURLエンコードをする必要があります。

escape() を使い、日本語を含むテキストを変換します。
※System.useCodepage が true になっている場合は false にします
------------------------------------------------------------------------------
getURL( "http://twitter.com/share?url=http://www.gravity-works.jp/&text=twitterテキスト" , "_blank" );
 ↓
getURL( "http://twitter.com/share?url=http://www.google.co.jp/&text="+ escape("twitterテスト") , "_blank" );
------------------------------------------------------------------------------

これでFlashにもシェアボタンを設置することができます。
| コメント(0) | トラックバック(0)
flash:外部クラス内でonEnterFrameを実行
2011.11.02
今まであまり外部クラスには触れずにきたのですが、
やっぱり便利なものは使わないと、というのと、
AS3.0を始める前に慣れておけるようにということで、
良さそうなところを見つけてちまちま外部クラス化したりしています。

そこで気になったのがonEnterFrameの扱い。

読み込んだ先でonEnterFrameを上書きしてしまっても困るし、
かといって空mcを作ってその中で動かすにしても、
そのmcからまた外部クラス内の処理を呼び出す方法がわからなかったりで
(こっちは調べればちゃんとした方法がありそうですが)
上手く使いこなせていませんでした。

なにかいい方法がないかと探していたところ、
AS2の外部クラス内で簡潔にonEnterFrameを有効にする という
まさにぴったりの記事が!

OnEnterFrameBeaconクラスというクラスを使うことで、
外部クラス内でonEnterFrameを使えるんですね・・
これは今後も(自分の中で)活躍しそうです。
| コメント(0) | トラックバック(0)
Flash:オブジェクト型変数の長さの取得
2011.09.07
配列と似たような使い方ができるオブジェクト型の変数ですが、
配列のように .length でデータ数を取得することはできません。

少し不便ですが、for~in文を使うことで取得することができます。


例えば以下のようなオブジェクトを用意して、
--------------------------------------------------------------------------

var userData_obj = {
  user_1 : {
    profile : "プロフィール1",
    comment : "コメント1"
  },
  user_2 : {
    profile : "プロフィール2",
    comment : "コメント2"
  },
  user_3 : {
    profile: "プロフィール3",
    comment : "コメント3"
  }
};
--------------------------------------------------------------------------


for~in文でカウントすることで、データ数を調べることができます。
--------------------------------------------------------------------------

objLen = 0;
for( var key:String in userData_obj ){
  objLen += 1;
}
trace( objLen );
--------------------------------------------------------------------------

上記の場合"3"と出力されます。

userData_obj.user_1 とすれば、
それぞれのデータ数も取得できます。
| コメント(0) | トラックバック(0)
Flash:Flash非対応のときに代替コンテンツを表示
2011.08.24
Flash Player が入っていない環境でFlashページを見たときに、
代替コンテンツを表示させる方法です。

swfobjectを使いますので、下記からダウンロードしてください。

swfobject

こちらのページには日本語のドキュメントもあります。


■使い方

まず、<head>内にダウンロードしたjsを読み込みます。

--------------------------------------------------------------------------

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

--------------------------------------------------------------------------



<body>内のFlashを貼り付けたい箇所に<div>を置き、
Flash非対応時のコードを書きます。

続けて、その<div>にFlashを表示させるための
Java Script のコードを書きます。

--------------------------------------------------------------------------

<div id="flash_contents">

ここにFlash非対応時に表示するコードを入れます。

</div><!-- /flash_contents -->


<script type="text/javascript">
<!--
var so = new SWFObject("sample.swf", "my_flash", "900", "600", "9", "#ffffff");
so.write("flash_contents");
//-->
</script>

--------------------------------------------------------------------------

以上、swfobject の基本的な使い方そのままですが、
これでFlash非対応時に代替コンテンツを表示させることができます。

また、あまりないと思いますが Java Script を使っているため、
Flash が見れる環境でも Java Script が使えない状態だと
表示させることができません。

覚え書きでした。
| コメント(0) | トラックバック(0)