Flashに画像を配置した時に、さっきまで見ていた色と違うということがありました。 全体的に赤みを帯びていたり、コントラストが強くなってたり。。。 原因を調べてみると、画像を編集していたPhotoshopにあることに気がつきました。 プルダウンメニューの「ビュー」⇒「色の校正」にチェックが入ってて、上の「校正設定」が「Windows」以外に選択されてました。 画像の見え方は、OSの色の解釈や、画面を見ているモニターの性能によって若干のブレがあるため、 この項目で確認したりするためのもので、Flashにインポートするときはjpgかgifに書き出していたため、 若干のブレがあり、色が変化しているように見えてたんだとおもいます。ショートカットがCtrl+Yですからね。 1つ進むのリドゥと間違えて押してしまったっぽいです笑 Photoshopで編集していた画像をFlashに読み込んだときに、 色が若干変化していた時は、ここのチェックをみて、 普段作業をするぶんに関しては、チェックを外していたほうがいいかもしれません。

続きを読む

古のFlashからあるgetURL関数がAS3でなくなっていることに戸惑われた方もいらっしゃるのではないでしょうか。AS3の仕様変更により、URLRequestクラスの変数に、ページ遷移する先のURLテキストを持たせて、navigateToURL関数の引数に渡してあげるとページ遷移します。 ActionScript 1 2 var url:URLRequest = new URLRequest("http://creator.cotapon.org/"); navigateToURL(url, "_self"); ボタンで実行する時はリスナー登録したイベントに対して書けば動作します。一回覚えてしまえば簡単ですねー。 ActionScript 1 2 3 4 5 6 7 import flash.net.URLRequest; import flash.net.navigateToURL; btn.addEventListener(MouseEvent.MOUSE_DOWN, btnMouseDown); function btnMouseDown(e:MouseEvent):void { var url:URLRequest = new URLRequest("http://creator.cotapon.org/"); navigateToURL(url, "_self"); }

続きを読む

ActionScriptでクロスドメインを認識させる方法は、 ActionScript 1 Security.loadPolicyFile("http://mysite.com/crossdomain.xml"); ↑たぶん、このようにスクリプトを書きます。 ActionScript 1 Security.loadPolicyFile("http://mysite.com/sitemap/crossdomain.xml"); ↑状況によってはドキュメントルート直下に「crossdomain.xml」置けないときもあると思います。 ボクは事情により後者で設定してFlashを再生させると、、 Error #2044: ハンドルされていない SecurityErrorEvent : text=Error #2048: セキュリティサンドボックス侵害 (※これはFlash Debug Playerからのアラートです) 出た!出たよ!!出てしまったよ!!!(TOT) そこでFlashTracerでログを追跡してどんなエラーが出ているかを調べてみました。 ここでクロスドメインの構造をサクッと説明しますが、ドキュメントルート以外のクロスドメインの方法は更に下のほうに書きます。 crossdomain.xmlの設置と記述方法 Flashのクロスドメイン問題はいにしえからある問題です。 そもそもクロスドメインというのは、swfファイルを貼り付けているHTMLをからみて、外部ファイルをロードするときに、そのファイルが置いてある場所は、HTMLファイルとは違うドメインという状態のことを指します。つまり、FlashPlayerは他人のドメインを攻撃してしまわないようにしているわけです。でも、世の中には写真共有サービスがあったりRSSコンテンツがあったりAPIなんかもあります。そういった場合は、どこからでも情報を取得してもいいですよ。といった感じに許可をすることができます。 その許可をするための設定ファイルが、 crossdomain.xml にあたります。 たとえば、自分のサイト http://mysite.com というサイトに表示させるFlashコンテンツが http://hoge.com というサイトにあるRSSをロードするとします。 この場合、クロスしてますよね。 hoge.com サイトは、 mysite.com がRSSをロードしてもいいよ!と許可をする為に、 crossdomain.xml をドキュメントルートの場所においてあげます。 アドレスは http://hoge.com/crossdomain.xml このようになります。実際に、この crossdomain.

続きを読む

ライブラリにおいてあるムービークリップに対して、リンゲージでActionScriptに書き出しをチェックを入れてクラス化したモノを、var 変数名:クラス名 = new クラス名();で生成して、stage.addChild(変数名);でステージに配置するのは基本だと思います。が、この一連の流れで一体どこにインスタンス名を設定するのか非常に悩んでしまいました。 単純にMovieClipを生成するだけなら、 var 変数名:MovieClip = new MovieClip(); でできちゃいます。ActionScript2以下の場合では、createEmptyMovieClipを使って空のMovieClipを生成していたと思います。 インスタンスを作成する場所.createEmptyMovieClip(インスタンス名, 深度) 第二引数にインスタンス名を設定ができ、例えばforで繰り返し生成する場合は、インスタンス名に対して「i」を連結させて連番名などにしたりしていました。さて、、ActionScript3.0ではどうするのでしょうか。。。 まず、空のMovieClipを生成した時の名前を調べました。 ActionScript3 1 2 var mc:MovieClip = new MovieClip(); trace(mc.name);//「instance1」と出力 name はActionScript2以下の場合は _name でアンダーバーがいりましたが、ActionScript3.0ではアンダーバーがいらなくなりました。newしたMovieClipの名前をtraceしてみると instance1 と出力されました。 これをforで繰り返して生成したMovieClipにアクセスする為には「instance1」「instance2」とかのまま作られたらダメですよね。。。 そこで調べました。なんと!ActionScript2以下ではインスタンス名を調べることしかできなかったnameが、ActionScript3.0からnewしたインスタンス名に設定できることが分かりました、つまり、 ActionScript3 1 2 3 var mc:MovieClip = new MovieClip(); mc.name = "myMc"; trace(mc.name);//「myMc」と出力 こう書けちゃうんです!勘の鋭い方はもう分かると思いますが、forで繰り返すときは、変数名.

続きを読む

FlashLite1.xで動的にコンテンツを動かす時に欠かせないのが、loadVariablesで変数をまとめたテキストデータを取得方法があります。FlashLite1.xではムービークリップごとにアクセスするのはドットシンタックスではなくスラッシュシンタックスなので、loadVariablesの第二引数に_rootという記述では変数を取得することができないので、loadVariablesの第二引数に「”/“」と記述します。 と、断言しちゃってますが、Flashのヘルプや他のブログなどをみると、第二引数に_rootとかいているパターンが多く、ブラウザやDevice Centralで第二引数に_rootで正しく動いても、ケータイ端末実機で動かない場合は下記の方法を試してみてください。 Flash Lite 1.xでのloadVariablesの記述 ActionScript 1 2 3 on (press, keyPress "<Enter>") { loadVariables("data.text","/"); //←第二引数で_rootではなく「"/"」スラッシュを書く } loadVariablesはボタンアクションでないと動作しない swfファイルがケータイ端末にロードが完了した瞬間にFlashは再生され、1フレーム目のScriptが実行されます。その瞬間に、loadVariablesが実行されると、swfファイルを読み込んだだけで端末情報が取得できたりしてしまうので、フレームアクションではloadVariablesが実行されないようになってます。これはFlashLite全体の仕様なので、loadVariablesとloadMovieで外部ファイルにアクセスする場合は必ずユーザーさんにボタンアクションをしてもらわなければなりません。パソコンコンテンツとは違い、データを取得して動的に表示させる場合はスムーズに見えるようなUIの工夫が必要になると思います。

続きを読む

そろそろActionScript2.0から脱皮できそうな予感がしてきました!(オソw)そこで、ActionScript2.0でできたことで、ActionScript3.0でできないこと、その違いと方法を記録していきたいと思います。 AS3でeval();が使えない evalは「テキストをインスタンス名のターゲットに変換してくれる」というのがボクのイメージです。 例えば、ステージ上に、mc0からmc9までのムービークリップがあるとします。これらに一気に命令する時は、 ActionScript1.x ~ 2.0の場合 ActionScript 1 2 3 4 5 for(var i:Number = 0; i<10; i++){ eval("mc"+i).onRelease = function(){ trace("ほげ"); } } for文の中の変数「i」を利用して、「mc0」「mc1」「mc2」「mc3」…..「mc8」「mc9」まで一気にonReleaseのボタンが設定できました。 ActionScript3.0だとevalが使えないので、下記の方法を使います。 ActionScript3.0の場合 ActionScript3 1 2 3 4 5 for(var i:int = 0; i<10; i++){ this.["mc"+i].onRelease = function(){ trace("ほげ"); } } えーっと、実は、この記述の方法はActionScript1.

続きを読む

Flash Lite 1.1を動的に表現するためにはloadVariablesを使って外部ファイルを読み込む必要があります。loadVariables(“hoge.php”)など、PHPで出力したテキストに対して、auだけうまくloadVariablesできないときがありました。どうやらechoして出力するファイル形式がテキストタイプということを書くと、うまくloadVariablesすることができるみたいです。 PHP 1 2 3 4 /*↓この1行を最初のほうに書いておく*/ header("Content-type:text/plain"); $hoge = "ホゲホゲ"; echo "hensu=".$hoge;

続きを読む

プロフィール画像

こたぽん

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

Rakuten, Inc. CyberAgent, Inc.