Lite)動的メニューを作るために外部ファイル読み込もうとしたけど。Lite)インスタンス名使えないから各オブジェクト状態変更はフレームで。>>>Java,AdobeReader,FlashPlayerで更新通知を出さない方法ターミナルサーバで、AdobeReaderやFlashPlayerを入れていると、一般ユーザがログインするたびに更新を促すメッセージが表示される場合があり、ユーザを困惑させかねない場合が少なく有りません。いうことで、AdobeReader,FlashPlayer関連で更新通知等の情報を表示させない方法です。これは以下のレジストリでも設定できるようです。自動的にアップデートをインストールする。参考:Adobe:アップデータの自動チェックを変更または無効にする方法AdobeReaderの品質向上ダイアログAdobeReaderでまれに品質向上にご協力ください的なダイアログが出ることがあります。「いいえ、必要ありません」を選べばOKです。管理者権限のコマンドプロプントで、以下のレジストリを追加するといいようです。製品向上プログラムのダイアログボックスを停止するにはAdobeReaderのEULA同意するアップデート後AdobeReaderを起動すると、EULAの同意するかどうかを聞いてきます。これも管理者権限で最初に同意してしまえば問題ないようです。FlashPlayerの更新通知Flashはログインするたびにダイアログウィンドウが出てくるので非常に邪魔くさいです。しておけばいいようです。設定する必要あるようなので、http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager05.htmlで、リリース情報通知のチェックをのけてしまえばいいようです。mms.cfgを使う方法もあります。Playerをグループポリシーで自動展開したいを参照ください。よる自動更新の通知を無効にする方法Javaの更新通知Javaもアップデートの情報をタスクトレイのバルーン表示で通知します。OFFにしてしまうといいようです。Vista(R)でJavaの最新バージョン更新通知を非表示にする方法ただ、更新通知を解除する場合は管理者が責任をもって、新しいセキュリティパッチがでたら更新するべき必要がありますね。Xをグループポリシーで自動展開したいと思ったけど。AdobeReaderの展開方法を書きました。今回はFlashPlayerの展開方法です。Playerライセンスから申し込みをします。Adobeから送られてくるメールにあるURLをつついて、ダウンロードページに飛びました。FlashPlayerの場合、AdobeReaderのようにメジャーバージョンだけMSIと言うことは有りません。すべてのバージョンがMSIが提供されているので、それをダウンロードしてグループポリシーの[ソフトウェア]インストールで設定するだけでOKでした。スクリプトを使ってサイレントインストール(自動更新もついでに無効)Adobeから入手した再頒布インストーラファイルには、MSI形式以外にもexe形式のものもあります。http://pnpk.netに載ってました。つければいいようです。いうファイルを作成し、その中にパラメータと値を指定してやればいいようです。バックグラウンド自動更新機能が追加されました。それまではいちいちログオン時に更新通知が開いてユーザが手動でアップデートする必要がありましたが、11.2以降はその必要はないようです。)パラメータと値は以下のとおりです。AutoUpdateDisable=1SilentAutoUpdateEnable=0もし、バックグラウンドで通知を出さず自動更新させる場合は以下のようにします。1更新通知のみをユーザに通知するには以下のようにします。n:n日)ただ、FlashPlayer11はDirectX9.0以上が必要なようです。DirectX9.0未満だと、インストール時に「d3d9.dllが見つかりません」というようなエラーになります。AdobeのページにはXP,IE7以上しか書いてませんが、IE6でもAcitveX版Flashはインストールできました。ちなみに、XPでもSP2を当てると、DirectX9になります。SP2以上かどうかという条件を加える必要があるかと思います。FlashPlayerのバージョンですが、以下のレジストリから取得できるようです。2011を使っています。IEは9で、FlashPlayerのプラグインを入れています。FlashPlayerを最新版(11.5.502.110)にアップデートしたところ、Flashを使っているページが軒並み応答なしの状態になりました。IEをセーフモード(アドオン無し)で起動すると正常に表示されます。仕方ないので、一回FlashPlayerをアンインストールし、保存しておいた11.4.402.278をインストールしようとしましたが、ゾンビファイルが残っているらしく旧バージョンはインストール出来ないと言います。アンインストールする方法からアンインストーラーを手に入れ、実行し、一回再起動して11.4.402.278を入れたらすんなり入りました。試しにFlashコンテンツを含むWebページを開くと正常に動作しました。原因はわかりませんが、Webが正常表示されないと困りますね。WebがらみFlashPlayerがエントリポイントが見つかりませんというエラーを出すPC起動時に、下記のようなエラーがでました。見つかりませんでした。あるらしいのですが、このバージョンが古いとダメなようです。このexeは最新のFlashがあるかどうかチェックしてアップデートを促すもののようです。FlashPlayerを入れ直すとOKなようです。Yahoo!ジオシティーズちなみに、Windows2000ってFlashPlayer使えるけど、サポート切られているようです。タグみたいなもの)を作ってみました。(内容は今まで小ネタで出してきたものも含んでます)これが結構苦労したんですよね。トップページ表示したときにカーソルがボタンオーバーした時だけ背景色とテキスト色変えてスクロールさすというものです。一つのムービークリップを複数のインスタンスで共有化することができないので、表示する個数分用意します。(ボタンも同じ)・ムービークリップ側まず、ムービークリップ側の実装です。1フレーム目にダイナミックテキストを配置します。1フレーム目のアクションを下記のように記述。//フラグが立っている時だけスクロールする。//scrlCntはフラグ。//文字列長のピクセル分スクロールしたっぽいなら位置リセット。//ムービークリップの位置を左端に。2フレーム目にはenterFrameイベントの代用として1フレーム目にループするようにします。↑で作ったムービークリップをボタンに配置します。今回カーソルオーバー時に背景に色付けて、文字色を白にしたいので、アップとオーバーは別のキーフレームにします。オーバーのフレームで配置したムービークリップを選択し、プロパティから「カラー」で「着色」を選択し、文字色を決めます。背景色は別レイヤーを作り、短径ツールで適当に作ります。要はルートのムービークリップのことです)シーンにボタンを配置し、ボタンアクションに下記のようにスクリプト書きます。要はスクロールさすかどうかのフラグの状態を決めてるだけです。);}あと、1フレーム目のアクションスクリプトにフラグ関係の変数を定義しときます。false;}基本的にはこれで横スクロールテキストは完成するんですが、一つ問題が。それはムービークリップ自体をx方向に移動させてるため、横方向いっぱいになってしまうということです。いうことができないのです。悩んだあげく強硬手段でこの問題を解決することにしました。それは、背景絵を用意し、スクロールエリアとするところだけ切り抜いて、スクロールボタンよりも上のレイヤーに配置するというものです。これだと、スクロールエリアをはみでることはありませんが、作るのとメンテが入った時が厄介です。手段使ってますが、一応こんな感じで実装させてみました。ボタンを幾つか用意して、あるボタンを押すと任意のURLを開くっていう極々一般的なことをしようと思ってます。ネットでケータイ用のイベントハンドラ探して、ボタンのインスタンスに書いたのは下記のようなコードです。);}これで実行すると、ボタン2を押下しても、ボタン1のイベントが走ってしまうのです。keyPress"ボタン番号"についてです。ここで、on(keyPress"ボタン番号"){}はそのボタンにフォーカスがなくてもボタンを押せば反応するという記述が。swf起動してどこのボタンにもフォーカスが当たってない状態で決定ボタン押下するとボタン1のイベントハンドラが動いてます。書くと案の定、要件どおりに動きました。書いてやればよかったんですね。フォーカスない時に制御するもんだから、基本的に1つだけ実装するということもわかりました。書いてしまったが故にこの問題解決するのに相当時間がかかってしまいました。振り分けるという作りにしないと行けないということです。ボタンのマウスオーバー時にボタン内にあるダイナミックテキストの表示色を変更したいというものです。ダイナミックテキストは変数を使って任意のタイミングで変更できるようにします。ダイナミックテキストの文字列は変数で簡単に変更できますが、色とかその他のプロパティは難しいみたいですね。方法はあると思うんですが、3流PGが採用したのは下記の方法です。1.ムービークリップを作成し、その中にダイナミックテキストを配置(変数を指定しておく)。2.クリップの1フレーム目にダイナミックテキストを変更する処理を入れる。)3.↑で作成したムービークリップをボタンのアップとオーバー、ダウンフレームに配置。4.オーバーフレームで、配置したムービークリップを選択し、プロパティから「カラー」で「着色」を選択し、色を決める。動的にカラーを変更することはできませんが、あらかじめオーバー時はこの色にするってきまってる場合は使えます。アクセスするという方法がOKWave:ActionScript(携帯)についてに書かれてました。イベントがサポートされてません。やってフレーム毎の処理すりゃええんじゃということになりますが、下記のようにフレームをループさせればいいようです。1フレーム目に戻るようにする。とほとんど同じ事が実現可能となります。Lite1.1ではonClipEvent(enterFrame)が使えません。Lite)動的メニューを作るために外部ファイル読み込もうとしたけど。今回動的なメニューを作ろうと思い、メニューに表示する文字列を定義したテキストファイルを用意し、それを最初に読み込んでダイナミックテキスト変数に代入ってことを考えました。関数で出来るっぽいです。コードはこんな感じです。_root);テキストファイルの中身はこんな感じです。strLink0=メニュー1の文字列&strLink1=メニュー2の文字列&strLink2=メニュー3の文字列で、ちゃんと読めたかどうかを確認するためのコード。1.1では配列をサポートしてないので、変数名末尾に数値を加えて仮想配列とするといいらしいです。ムービークリップの1フレーム目に書いて動かしてみたんですが、全然読み込まれている気配がありません。走らないようにしてるようです。これは、swf再生しただけでユーザーが自動的に携帯情報などを取得されないようするための仕様のようですが、非常にうっとしいです。今回は初期表示のメニュー内容を動的に変えたいのに、ユーザーのキー操作が無いとダメだったら意味ないですね。いうことで、結局swf内部にテキスト埋め込むことしかできないという結論に至りました。ニュースのヘッドライン表示してるんですが、どうやって動的に変えてるんでしょうね。ボタンを配置して、オーバーフレームにとあるムービークリップを置いて、そのムービークリップに対してムービークリップアクションを書いてみたんですが、全然動いてる風に見えません。調べてみると、「Flash4のActionScriptでは,クリップアクションが使用できないため,...」というのを見つけました。クリップアクションが記述できないんですね。ムービークリップ内のフレームアクションに書いてもいいんですが、そうするとインスタンス毎に違う処理をさせたい時にシンボルをインスタンス数分作らないと行けないので、部品の共通化ができなくなるんですよね。