今度は久々にFlashに関して AS2までは、入れ子になったMovieClipから一番上にあたる _root に対して、そこのタイムラインに書かれているScriptの関数を叩く際には、 _root.hoge(); と書けば、 function hoge(){} 関数が実行できました。 AS3になって、XもYもrootもアンダーバー _ をつけなくなり、入れ子になったMovieClipからアンダーバーのない root.hoge(); で関数を実行できるのかとおもったっら違うみたいでした。。。今更感がいなめないですが、、メモします。 ActionScript3 1 MovieClip(root).hoge(); ActionScript3.0の場合は、このように書くとhoge関数が実行できました。rootも1つのMovieClipですよー!っていうことですね。もう忘れないw 補足 この方法でアクセスできなかったパターンがありました。 TypeError: Error #1034: 強制型変換に失敗しました。flash.display::Stage@4e9df99 を flash.display.MovieClip に変換できません。 このようなエラーが出てしまい、タイムラインに書いている関数にアクセスすることができませんでした。条件は下記のとおり。 1. リンケージでクラスを作ってmyMcにする。 1. new myMc();をstage.addChild();する。 1. 作ったクラスの再生途中でMovieClip(root).hoge();関数が実行できない。 ActionScript3 1 2 3 4 5 6 var mc:MovieClip = new myMc(); stage.addChild(mc); // myMcの中にある関数でここを実行 function hoge():void{ trace("ほげ"); } 原因は、addChildする場所に問題があるみたいです。この例ではstageに対してaddChild();していますが、メインのタイムラインに書いてある関数はrootに対してアクセスすることができるので、stageはMovieClipに変換できません。というアラーとっぽいです。rootはタイムラインを含むでっかいMovieClipなので、リンケージで設定したクラスに書かれている関数でメインのタイムラインに書いているfunctionにアクセスしようとするには、newしたクラスのMovieClipはMovie(root)にaddChildしてあげなければなりません。

続きを読む

だいぶごぶさたしてました。。。最近はJavaScriptやCSSを触ることが増えてきましたけど、久しぶりにFlashについて書こうとおもいます。ActionScript3になってから正規表現がサポートされましたが、ActionScript2、1では使うことができません。それを使えるようにするライブラリを見つけたので簡単に紹介します。 ライブラリ配布サイト:http://www.jurjans.lv/flash/RegExp.html ここのページで、まず最初にはまってしまいましたのが、AS1とAS2で使用するライブラリの種類が違いました。 AS1用:RegExp.zip AS2用:RegExp_JLott.zip このzipファイル名を探してダウンロードしてください。解凍したzipファイルの中にあるasファイルをドキュメントルートに設置して、スクリプトで読み込めるようにしておいてください。 RegExサンプルコード AS2 ActionScript 1 2 3 4 import RegExp; var regexp = new RegExp("([^?]*)");//←括弧のなかに正規表現パターンを入れる result1 = regexp.exec("ここにテキストを入れる");//パターンにマッチした部分を摘出 result2 = "検索する文字列".replace(regexp,"置き換えたいテキスト");//パターンにマッチした置き換え いろんな参考ページをみたときに、new RegExpの第2引数になんらかのStringを入れていましたが、いまいち用途もわからず、なくても正しく動きましたので今回は省きました。 RegExサンプルコード AS1 ActionScript 1 2 3 4 #include "RegExp.as" var regexp = new RegExp("([^?]*)");//←括弧のなかに正規表現パターンを入れる result1 = regexp.exec("ここにテキストを入れる");//パターンにマッチした部分を摘出 result2 = "検索する文字列".replace(regexp,"置き換えたいテキスト");//パターンにマッチした置き換え 正規表現というのはとても便利でいいんですが、僕はいまいち使いこなせていないです。。^^;

続きを読む

ActionScriptで3DCGアニメーションや3Dゲームを作るために欠かせない、Papervision3Dの日本語ドキュメントが公開されてましたのでメモします。 Papervision3D™ 2.1 日本語 リファレンスガイド http://papervision3d-jp.googlecode.com/svn/trunk/docs/index.html papervision3d-jp(プロジェクト) http://code.google.com/p/papervision3d-jp/

続きを読む

Q.納品されたswfファイルが開けません A.ローカル(StanndAlone)でswfを再生できるFlash Playerは無料配布されてませんので、Flash Playerがインストールされたブラウザにドラッグアンドドロップして確認してください。 Q.ブラウザにswfファイルをドラッグアンドドロップしましたが、サイズが違います。 A.htmlに乗せていないswfファイルは、縦横サイズが指定されていないので、ブラウザウインドウの幅の分だけ拡大します。原寸サイズで確認する場合はhtmlに貼り付けて、htmlから確認してください。 Q.Flash Playerをインストールしているのに、Flashが表示されません! A.(JavaScriptでswfを表示させている場合)JavaScritpがOFFではありませんでしょうか?swfを表示するために、swfobject.jsというJavaScritpを使用していますので、確認する際にはJavaScritpをONにしてください。 Q.修正したswfファイルが、更新されてないみたいなんですが。 A.swf配信後、更新前のキャッシュファイルが残っている可能性があります。ブラウザのキャッシュを消してから確認してみてください。 Q.外部XMLを更新、配信したんですが反映されません。 A.swfの修正更新ではなく、外部XMLを用いている場合、Flash側でキャッシュ対策がされてない場合があります。Flash制作者へお問合せください。 Q.外部から読み込んでいる画像が表示してません。 A.読み込んでいる画像のURLに直接アクセスしてみてください。そこに画像はありますか? Q.Flashが出てなくて真っ白です。 A.真っ白いという状況は複数の原因が考えられますので、まず、そのFlashが表示されるはずの真っ白い場所を右クリックしてみてください。Flashのコンテキストメニューが表示されなかったらFlash Playerがインストールされてないか、HTMLの記述に間違いがあります。まずはそこを確認してから他の原因を調べます。 Q.IEではFlashが見れますが、FirefoxではFlashが表示されません(その逆の場合も) A.見られてないブラウザにFlash Playerがインストールされていない可能性があります。IEとFierfoxとでは、各ブラウザごとにFlash Playerのインストールが必要ですので、見られないブラウザでAdobeのサイトからFlash Playerをインストールしてください。 http://get.adobe.com/jp/flashplayer/ Q.ページ内リンクからブラウザの戻るボタンで、Flash Playerが正しく再生されない A.ブラウザによって「戻る」ボタンの仕様がちがい、全てに当てはまるとは限りませんが、Flashのタイムラインが進んでしまってる状態のまま「戻る」可能性があるので、1フレーム目にXMLや画像を読み込むActionScriptを記述していると、その1フレーム目のActionScriptが実行されていないまま、フレームが進んでいる状態に戻っている可能性が高いと思います。ページ内リンクからブラウザの戻るボタンで、Flash Playerが正しく再生されないを参考にしてみてください。 Q.FlashPlayerは潜在的に危険な操作を停止してしまいます。 HTTP環境外、例えばローカルとかからFlashを再生してリンクを確認する時、セキュリティが働いてページ遷移しない設定になっています。FlashPlayerは潜在的に危険な操作を停止しましたの回避策を参考にしてみてください。

続きを読む

HTMLにswfファイルを貼り付けてブラウザで見るときに、場合によってはHTMLに書いておいた値やパラメータをFlashの変数に渡してあげたいときがあると思います。Flash内を更新したいときや、ちょっとした汎用性のあるコンテンツを作るときに、Flashアプリケーションがインストールされていない環境でも、Flashの更新をしたりする時に便利です。色々ある方法の中で一番シンプルな方法、swfobjectを使って、ActionScriptにどう書けばいいのか紹介します。 swfobjectを使ってパラメータを設定する場合 swfobjectの使い方はswfobject v2.xの使い方を参考にしてみてください。 Flashコンテンツの背景色を色々変更したいという例えで紹介します。HTMLに書くswfobjectの書き方のイメージはこんな感じにします。 HTML 1 2 3 4 5 6 7 8 <script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> <!-- var flashvars = {bgColor: "FF0000"};//←背景色 var params = {allowscriptaccess: "always"}; swfobject.embedSWF("flash.swf", "flashContent", "100", "100", "8", "", flashvars, params,attributes); //--> </script> flashvarsに変数名「bgColor」を書いて、値である16進数の「FF0000」を書いてみました。 ではActionScriptではどのように書くか ActionScript2.0以下でflashvarsを取得する場合 ステージ全部に収まるシェイプを作って、今回の例では100x100の正方形のMovieClipを作ってステージに配置します。インスタンス名を「bg」としました。第1フレームに下記のActionScriptを書きます。 ActionScript 1 2 3 var color_obj = new Color(bg);// カラーオブジェクトを作成する var colorStr = "0x"+_root.

続きを読む

ActionScript3.0から、Flash領域内で右クリックしたときに出るコンテキストメニューを非表示にすることができるようになりました。 ActionScript3 1 2 3 import flash.ui.ContextMenu; var menu_mc = new ContextMenu(); menu_mc.hideBuiltInItems(); 拡大縮小や描画領域を表示させるのはユーザーの方に見せる必要がないと思い消してもいいと思いますが、コンテンツによってはセキュリティーの設定項目と、Flash Playerとは。のメニューは残しておいたほうがいいかもしれへんなぁーっと個人的には思いました。

続きを読む

ローカルの時間を取得する方法 この辺の感覚はAS1、2とあまりかわらないですね。 ActionScript3 1 2 3 4 5 6 7 8 9 10 var myDate:Date = new Date(); trace(myDate.fullYear); trace(myDate.month + 1); trace(myDate.date); var dayAry = ["日","月","火","水","木","金","土"]; trace(dayAry[myDate.day]); trace(myDate.hours); trace(myDate.minutes); trace(myDate.seconds); trace(myDate.milliseconds); 文字列を渡して時間を設定する方法 ローカルの時間だと、ユーザーのパソコンの時計にしまいますので、サーバーの時計等を取得して時計を表示させる場合は、下記のパターンのように、new Dateの引数にStringなどを入れることによって正しい時間を表示させることもできます。 ActionScript3 1 2 3 var myDate:Date = new Date("Fri, 26 Mar 2010 06:35:19 +0900"); var myDate:Date = new Date("Sat Nov 30 01:20:00 GMT-0800 1974"); var myDate:Date = new Date(1974, 10, 30, 1, 20); 文字列から時間を再設定してから時を刻むサンプル getTimer()はFlashPlayerが再生し始めた瞬間からの経過時間をミリ秒で取得できる関数です。1000=1秒です。Date.

続きを読む

プロフィール画像

こたぽん

JavaScript, React, NextJS, VueJS, NuxtJS, AWS, Firebase, Git, ビールと生ハムが好き

Rakuten, Inc. CyberAgent, Inc.