全般の最近のブログ記事
似ていて違う、良く間違えるスクリプトを忘れぬように羅列していきます。
(随時追加更新予定です。)
- マスク
mc_mc(MC) を mask_mc(MC) でマスクをする場合。
●Actionscript 1(and2)
mc_mc.setMask( mask_mc );
●Actionscript 3
mc_mc.mask=mask_mc; - ステージサイズ
SW幅とSH高さの場合(単位:ピクセル)
●Actionscript 1(and2)
var SW=Stage.width;
var SH=Stage.height;
●Actionscript 3
var SW:uint=stage.stageWidth;
var SH:uint=stage.stageHeight;
FlashPartsの更新が滞っておりますが、単にサボってるわけではありません。www
近々に新シリーズの配布を考え、鋭意制作を進めております。
新シリーズは、『より多くの方に、より使いやすく』をコンセプトに制作しております。
余談ですが、Flashには『HTML5に取って代わられる』『iPadやiPhoneで採用されてない』
『重いからいや』・・・などなど多くの話題や課題もあります。
できるだけ多くの方々にリッチ&インターラクティブコンテンツを配信できればFlashでなくても
良いのですが、現段階で実現できているのはFlashではないかと考えております。
とにかく多くのホームページで、その一部でもそんなFlashを使ってもらいたいと思います。
■前提条件
[FP08]・・・パブリッシュ設定:FlashPlayer8, Actionscript 2.0 のFLASH(swf)
[FP09]・・・パブリッシュ設定:FlashPlayer9, Actionscript 3.0 のFLASH(swf)
[FP10]・・・パブリッシュ設定:FlashPlayer10, Actionscript 3.0 のFLASH(swf)
(FlashPlayer10特有の3Dなどのクラスを使用)
※すべてにダイナミックテキストを使用してテキストを表示
■実験
1)[FP08]に[FP08][FP09][FP10]を読み込み
2)[FP09]に[FP08][FP09][FP10]を読み込み
3)[FP10]に[FP08][FP09][FP10]を読み込み
■結果
1)予想どおり、[FP09][FP10]は動作せず。
2)予想どおり、[FP10]は動作不良。
予想外に、[FP09]も動作不良。
[FP10]のエラーが同じActionscript3.0の[FP09]にも影響しているようだ。
[FP10]を読み込ませないようにすると正常に動作する。
さらに、[FP08]も動作不良。
ダイナミックテキストで、変数で定義していたものを
テキストフィールドのtextプロパティとして与えると正常に動作する。
3)予想通り、すべて正常に動作。([FP08]は上記と同様textプロパティを使用)
■結論:バージョンの異なるFlash(swf)に読み込むことを前提に制作する場合
1)Actionscript1.0または2.0のダイナミックテキストは
変数ではなくtextプロパティで指定する。
(これはActionscript3.0と同じ方法なのが良いのかと思われる。
他にも考慮すべき点はあるかもしれない。)
2)当然のことですが下位に上位のFlash(swf)を読み込むのは避ける。
(読み込んだFlash自体が動作しないだけではすまない場合がある。)
flashの外部ファイルの直リンク防止方法
htaccessを利用すると良さそうです。
■経緯:
flashで、外部ファイルのxmlとかjpgを読み込んで処理する場合が
あると思いますが、お客さんから、xml、jpgを隠したいような
相談がありまして、swfをデコンパイルされたら難しいかな~
っと思ってたんですが、htaccessで対応できそうです。
で、せっかくなので、紹介しておきます。
■htaccessの中身
SetEnvIf Referer "^http://example\.sakura\.ne\.jp/" ref_ok
SetEnvIf Referer "^$" ref_ok
<Files ~ "\.(gif|jpe?g|png|xml|swf)$">
order deny,allow
deny from all
allow from env=ref_ok
</Files>
※1)1行目は設置するサイトのドメインに書き換え
SetEnvIf Referer "^http://example\.sakura\.ne\.jp/" ref_ok
※2)2行目はいらないような気がしますが・・・(直リンクの場合)
SetEnvIf Referer "^$" ref_ok
※3)3行目は、直リンクしたくないファイルの拡張子を追加してください。
<Files ~ "\.(gif|jpe?g|png|xml|swf)$">
例えばwavとかflvとか・・・
■出典サイト:
・「画像への直リンクを防ぐ」
http://faq.sakuratan.com/wiki/wiki.cgi?.htaccess#i14
・参考となりそうなhtaccessのリファレンス
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/
--------------------------------------------------------------------------------------------------------
2行目これはやっぱり必要でした。
1)お気に入りとかで、直flashのあるページを開いたら
リファラーは空っぽなので。
2)ブラウザでリファラーを送らない設定になっている場合
もあるので(もしかしたら空白じゃなくエラーになるのかも)
そもそもリファラーを送らない設定の必要性ってなんだろ?
ところで問題?疑問?が
他のサイトからそのページにリンクされてたら、リファラーは
リンク元のURLになりますよね?
そしたら何も表示されなくなっちゃうかも・・・
しかし画像の直リンク対策になっているはずなので
もしかしたらうまく表示するのかな?
(すみませんちゃんと実験してみないとわかりません)
--------------------------------------------------------------------------------------------------------
flashの外部ファイルの直リンク防止方法
の 実験結果です。
■欲しい結果の組み合わせ
(htmlの中の外部データを読み込んだswfは表示、xml(swf,jpgなど)は非表示)=(○、×)
■ケーススタディ
1)オリジナル
・リンク時=(○、×)・・・成功
(AドメインからBへリンクした場合)
・お気入り=(○、○)・・・失敗
(お気に入りで直接アクセスした場合)
2)1行目のみをコメントアウトした場合
# SetEnvIf Referer "^http://example\.sakura\.ne\.jp/" ref_ok
・リンク時=(×、×)・・・失敗
(AドメインからBへリンクした場合)
・お気入り=(×、○)・・・失敗
3)2行目のみをコメントアウトした場合
# SetEnvIf Referer "^$" ref_ok
・リンク時=(○、×)・・・成功
(AドメインからBへリンクした場合)
・お気入り=(○、×)・・・成功
■結論
たぶん2行目は無くて良いと思います。
ただし、2行目を無くすとブラウザがリファラー無しの
設定の場合は何も表示されなくなるんじゃないかな?
と思います。
なのでオリジナルのままの方が良いと思います。
この場合下記の方法でデータがたぶん見れちゃいます。
1)ブラウザはリファラ無しに設定
2)htmlからswfのURLを取得し、お気に入りに入れる
3)swfにお気に入りからアクセス&DL(ダウンロード)
(ブラウザによっては2)で一緒にDLできると思う)
4)swfをデコンパイル
(やったことないので方法は知りません)
5)xmlのURLを取得し、お気に入りに入れる
6)xmlにお気に入りからアクセス&DL
7)各画像などのファイルのURLをお気に入りに入れる
8)各画像などにお気に入りよりアクセス&DL
まあ、かなり障壁、面倒さはアップしてるので不完全でも
少しは効果あるかもです。
