10/11/21 15:07:09 MNMYcOt/
質問です。
As3で関数の引数にObjectのデフォルト値入れるとエラーでてしまうのですが、引数でObjectにデフォルト値ってセットできないのでしょうか?
下記ソースになります。
function hoge(obj:Object = {name:"hoge"}):void{
trace(obj[name])
};
よろしくお願いします。
150:Now_loading...774KB
10/11/21 16:20:57 ohvMsSKY
>>149
オブジェクトの書き方それであってる?
151:Now_loading...774KB
10/11/21 16:55:15 OpuCRZzC
>>149
エラー文も書けばいいのに
152:Now_loading...774KB
10/11/21 17:11:28 MNMYcOt/
>>150
下記で値は取れてるので、オブジェクトの書き方は問題ないと思います。
var obj:Object = {hoge:5};
trace(obj["hoge"])
>>151
エラーは、1047:パラメータ初期化子が不明か、コンパイル時定数ではありません
これって、引数ではnewできませんよってことなのでしょうか?
153:Now_loading...774KB
10/11/21 17:18:35 MNMYcOt/
連投ですみません。
諦めて動けばいいよ思考になり、デフォルト値をnullにして中で処理することにしました。
function hoge(obj:Object = null):void{
if(obj == null) obj = {name:"hoge"}
trace(obj["name"])
}
ありがとうございました。
154:Now_loading...774KB
10/11/22 03:37:52 TT7WypJE
質問です
自分は普段AS3でデータ型を省略してるのですが(データの入れ間違えなんてしませんし誰にも見せないので)
各所覗いてると省略してるのは自分だけのような気がして不安になってきました。
AS3でデータ型を書かないとパフォーマンスが落ちるといったことでもあるのでしょうか?
逆にその分スクリプトの容量が1割減るのでパフォーマンスが上がるようなことはないですか?
155:Now_loading...774KB
10/11/22 03:47:39 CLJbHRWd
型指定することでバイトコードが最適化されてパフォーマンスが上がる
と言われています。変わんねーよって人もいます。
詳しくはググった方がいい・・・。
あと、書いてるときは間違えない自信があったとしても、
あとで弄るときは間違えるかもしれませんよ。
せっかくコンパイラーがチェックしてくれると言ってるんだから、させてあげればいいと俺は思う。
156:Now_loading...774KB
10/11/22 11:39:17 Wko04cQ8
いや、パフォーマンスは確実に変わる。遅くなる。
とは言っても、ループを大量に回すとかやった場合ではあるが。
さらに、スクリプトってコンパイルされるのだから、
元のテキストが短くなっても、実際のバイトコードが
短くなるかどうかはわからないし、
バイトコードが短いから速いとも限らない。
ループ3行と、10行のプログラム、どっちが速いとかわからんでしょ?
FlashBuilder等のIDEを使って書けば、代入できる候補のリストとかを絞り込んでくれるし、
>>155が書いているようにコードミスが確実に減るし。
デメリットが無くて、メリットばかりなんだから
使わない手は無いと思うんだけどな。
157:Now_loading...774KB
10/11/22 17:49:17 w7kM+4hd
FlashCS4(AS3,Player10)をWinXP-Proで使用
特にAS3やPlayer10に限った事では無いのですが、マウスのstartDrag()によるインスタンス(MC)
の移動による描画が時々MCと一致せず困っています。
今やっているのは、ある点AからRだけ離れた所にMC(B)を置いて、Bをドラッグして水平移動し、
その時々のA→B間距離を半径rとした円環(円周)を描くというものです。
(つまり、マウス操作により円環が大きくなったり小さくなったりする) AAで書くと下の感じです。
|円周
|
A・ -- R -- [B]
↑ (矢印記号はマウスポインタ)
|
|円周
通常は円周描画の拡大縮小がBの動きに追従しているのですが、一旦マウスがBの領域から外れ、
再ドラッグすると円周の半径方向位置とBの位置が一致せずズレた状態が続きます(下記)
|円周
|
A・ -------- r -------- [B]
↑
|
|円周
希望を平たく書くと、『描画を正気の状態に戻す』ということです。試しにフレームレートを増やしたり、
updateAfterEvent()を使いましたが駄目でした。 何かアドバイス頂けたら幸いです。
158:Now_loading...774KB
10/11/22 18:04:02 I00h+2fT
>>157
AB 間の距離を使っちゃダメなの?
159:Now_loading...774KB
10/11/22 19:02:53 w7kM+4hd
>>158
レスさんきゅう。
円周描画にはご指摘の通りAB間距離を使っています。
原因が分かりました。
MC[B]に対して、マウス押す/放す(MouseEvent.MOUSE_DOWN/UP)の信号をDispatchEventで
描画関数に伝えていますが、MOUSE_DOWN/UPの識別を横着こいてフラグ管理していたのが原因
でした。
厳密にMOUSE_DOWNとUPを別々のDispatchEventで送受信したところ、円周描画がスムーズに
追従するようになりました。
160:Now_loading...774KB
10/11/22 23:21:10 0ZqGVyph
AS3のTimerについての質問をさせてください。
以下のようにある関数を通して、タイマーを順次呼び出すにはどのように実装すればよいのでしょうか?
半日悩んだのですがうまくいきません。どうか助けてください。
[内容]
var myArray:Array=[];
myArray.push(['log1',1000]);//traceしたい内容,traceの遅延ミリ秒を設定します。
myArray.push(['log2',2000]);
myArray.push(['log3',3000]);
myTraceFunction(myArray);
[望む結果]
関数呼び出し→(1000ミリ秒経過)→trace('log1')→(2000ミリ秒経過)→trace('log2')→...
161:Now_loading...774KB
10/11/23 00:28:28 WNvCegCi
>>160
各配列の要素は必ず[文字,数値]としたいの?
もし文字だけ出力するならこれで行けると思うけど
timer_count:int = 0;
timer:Timer = new Timer(1000, 0);
timer.addEventListener(TimerEvent.TIMER, timer_func);
function timer_func(evt:TimerEvent){
timer_count++;
for(var i:int=0; i<myArray.length; i++){
if(timer_count == 1000*(i+1)){
trace(myArray[i]);
}
}
}
要素を文字、数値という順番が決まってるなら
trace(myArray[i]);のところはi*2で偶数にして
1000*(i+1)のところはmyArray[i*2+1]*(i+1)で奇数にすればいいんじゃない?
162:Now_loading...774KB
10/11/23 00:38:35 Jt73XTiI
こちらの例えが悪く申し訳ないです。
myArray.push(['hoge',60]);
myArray.push(['foo',200]);
myArray.push(['bar',30]);
このように数字に規則性はないつもりでした。
また、配列の中身は[String,uint]で固定です。
この設定でもう一度考えていただけますか?
どうぞよろしくお願いします。
163:Now_loading...774KB
10/11/23 00:41:33 KPeUC44y
test
164:Now_loading...774KB
10/11/23 00:51:44 KPeUC44y
function myTraceFunction(str:String, arr:Array):void{
trace(str);
if(arr && arr[0]){
settimeout(myTraceFunction, arr[0][1], arr[0][0], arr); // 設定時間後に再起呼び出し
arr.splice(0); // arrから最初のデータを削除
}
}
こんな感じでどうだろ?
全く動作確認とかしてないし、引数の順番とかspliceの動作とかうろ覚えだけど。
そこらへんはリファレンス見ながら頼む。
spliceはsettimeoutの前にしないとだめとかいう可能性も。
165:Now_loading...774KB
10/11/23 01:01:12 WNvCegCi
>>160
ならばこれでいけるよ
var myArray:Array = new Array();
var timer_count:int=0;
var timer:Timer = new Timer(100,0);
timer.addEventListener(TimerEvent.TIMER, timer_func);
myArray.push(['hoge',60]);
myArray.push(['foo',200]);
myArray.push(['bar',30]);
timer.start();
function timer_func(evt:TimerEvent){
timer_count++;
trace(timer_count);
for(var i:int=0; i<myArray.length; i++){
if(timer_count==myArray[i][1]){
trace(myArray[i][0]);
}
}
}
166:Now_loading...774KB
10/11/23 01:51:19 Jt73XTiI
できました!検証に時間がかかり、お待たせしました。
>>165さんのコードですが、
hoge->foo->bar->を希望していましたが、bar→hoge→fooの順番で呼び出されてしまい、
>>164 さんのコードは
関数呼び出し→(1000ミリ秒経過)→trace('log1')→...が
関数呼び出し→trace('log1')→(1000ミリ秒経過)→...になってしまいました。
そこで双方のコードを参考にしつつ四苦八苦したところ以下の実装で動作しました。
function myTraceFunction(arr:Array,traceFlag:Boolean=false):void{
if(traceFlag){//遅延してからtraceするために初回は飛ばす
if(arr && arr[0]){
trace(arr[0][0]);
if(arr[1]){//次の配列があれば再帰呼び出し設定
setTimeout(myTraceFunction, arr[1][1],arr,true);
}
arr.shift();//arrから最初のデータを削除
}
}else{
setTimeout(myTraceFunction, arr[0][1],arr,true);//初回は遅延のみ
}
}
こちらの説明不足で意図がうまく伝わらず失礼しました。
どちらのコードも大変参考になりました。本当にどうもありがとうございました!
167:Now_loading...774KB
10/11/23 02:11:52 WNvCegCi
なんか書いて損した気分...
168:Now_loading...774KB
10/11/23 02:27:39 Jt73XTiI
>>167 誤解させてしまってすみませんでした。これからは気をつけます。
169:Now_loading...774KB
10/11/23 19:45:12 f1QooxVf
ステージの高さと幅を動的に変えることって可能ですか?
ウェブサイト内のフラッシュでも、フラッシュプレイヤーで再生するフラッシュでもいいです。
170:Now_loading...774KB
10/11/24 04:22:20 FWEry6/q
>>169
前にも似たような質問があったけど、その時は
「FLASHそのものからは動的に変えられないから、Java Scriptで表示領域を変化させる」
という解決法だった気がする。
171:Now_loading...774KB
10/11/24 10:05:00 Ik53On7o
プロジェクタでいいならdirectorにswf読み込むだけで
windowの移動拡大縮小が可能になるよ(buddy api使用)
172:Now_loading...774KB
10/11/25 00:21:17 lYnR47B5
ASってタイムラインとかルートとかからんでくるとややこしいのですが
ASの面倒くささを軽減するライブラリ集とかないですか?
173:Now_loading...774KB
10/11/25 00:39:31 rjhmsPiF
>>172
as3 frameworkとかフレームワークで検索しよう
174:Now_loading...774KB
10/11/25 01:22:01 CTozBv6O
FlexSDKでActionScriptプロジェクトで作ってれば、
ややこしい事できないけどな。
175:Now_loading...774KB
10/11/26 02:50:22 aXD7kERj
ASってファイル操作ができないみたいですが
JAVAやJAVAScriptを呼び出してファイル操作やファイル実行することって可能ですか?
176:Now_loading...774KB
10/11/26 03:21:37 aXD7kERj
捕捉です。やりたいことはローカルからスタンドアロンアプリとしてswfを起動させて
ローカルHDD内のフォルダ内のファイル一覧を読み込んだり、ファイルを保存したりしたいです。
airは使いたくないのでflash単体でできませんか?
177:Now_loading...774KB
10/11/26 03:25:26 Ley6VMLU
まずAIRを使いたくない理由を述べなさいよ
178:Now_loading...774KB
10/11/26 05:42:06 aXD7kERj
作りたいのはインターネットで配布してローカルPCで実行するアプリなんですが
airだと確か規約でネット配布のソフトにairラインタイムのインストーラーを同梱できなかったと思います。
そうするとユーザーから見るとインストールとか面倒かなと。
179:Now_loading...774KB
10/11/26 07:50:38 Ley6VMLU
どこで何を読んだか知らんが同梱できるよ
URLリンク(www.adobe.com)
Webで配布ならシームレスインストールもあるし。
180:Now_loading...774KB
10/11/26 08:36:52 aXD7kERj
あれ、そうなんですか?ゆとりなので規約をよく理解できませんでした。
AIRは不人気なので敬遠してたのもあるのですが、試しに導入してみたら悪くなかったので、
とりあえずこれで作ってみたいと思います。
181:Now_loading...774KB
10/11/26 12:20:16 5EAsCPn+
AIRが不人気というが、この手の奴で流行っている他の奴を知りたい。
みんな似たようなもんだとおもうが。
182:Now_loading...774KB
10/11/26 18:58:17 /RlzuLln
FlashCS4,ActionScript 3.0,WinXP
curveToで描いた曲線の頂点の位置AとコントロールポイントBの位置関係(ABの関係)を
把握するにはどうしたら良いでしょうか?
例えば「へ」の字型線の頂点にAがあり、その上にBがあるとき、
○ B
. A(本当は線の中にある)
へ
Aの位置よりBの位置を求めたく思います。 ※目標は曲線グラフを描くことです。
「ActionScript 3.0 curveto 頂点 位置」でググりましたが分かりませんでした。
183:Now_loading...774KB
10/11/26 19:45:55 5EAsCPn+
スプライン曲線じゃいかんの?
ライン上の点を結ぶ曲線になるから、グラフ描くなら制御しやすいとおもうが。
184:Now_loading...774KB
10/11/26 23:29:58 SmiPzgR9
次のイベント・ハンドラーを実行してみたところ、「処理が遅くなっている」という旨の
警告が出ました。
onMouseUp = function (){
; trace(++i);
; while (true);
}
このことから、割り込み処理は素早く済まさなければならないことは分かったのですが、
割り込み処理を早急に終了して、その後で何か希望する処理を実行させる方法は有るので
しょうか?
gotoAndPlay() を試してみましたが、割り込み処理を終了するわけではないようです。
185:Now_loading...774KB
10/11/26 23:55:31 5EAsCPn+
関数を書いて、それを呼ぶ形式にして、その関数の完了イベントと、そのイベントハンドラを自分で実装する。
基本的にはこんな感じ。
汎用的に書き始めると恐ろしいことになるから、適当にライブラリを使った方が良い。
ここら辺から好きなのを選ぶと良い。
URLリンク(digitechlog.com)
186:Now_loading...774KB
10/11/27 00:18:42 a0WiUeGT
textAreaのコンポーネントをクリックしたときにフォーカスの枠を非表示に
するにはどうすればいいですか?mytxtarea.focusEnabled=falseにしても無理でした。
AS3.0です。
187:184
10/11/27 00:21:10 VNX11zp6
>>185
本当に物凄い勢いと言うか物凄い早さでの回答ありがとうございます。
紹介してもらった記事は、これから読んで勉強します。
188:182
10/11/27 00:27:06 hSM08HHK
>>183
さんくす。
スプライン曲線でググって幾つかサンプルが見つかりました。
試してみます。
189:184
10/11/27 12:25:56 imszsrAY
>>184 のイベント・ハンドラの件の続きです。
イベント・ハンドラ内の処理を短時間で終わらせるために、次のように変更して
みました。
flag = false;
onMouseUp = function (){
trace("mouse up");
flag = true;
}
そして時間の掛かる処理 while (true); は、別のフレームに持って行きました。
if (flag){
trace(++i);
flag = false;
while (true);
}
gotoAndPlay("loop_start");
これで、イベント・ハンドラ実行中に次のイベントが発生する危険性は充分小さく
することが出来たはずですが、それでも前回と同じく「処理が遅い」という警告が
出ます。
さらに、イベント・ハンドラ内の trace() の反映が、異常終了時まで待たされます。
何故なのでしょうか? 遅くともイベント・ハンドラ終了時には trace() は完了
していそうなものですが。
どうも「while (true);」が悪さをしているようですが、納得出来ません。
190:Now_loading...774KB
10/11/27 13:18:35 7fGRmn6E
>>189
AS2.0?
とりあえず、while (flag)じゃないの?
やりたいことよくわからんけど、onEnterFrameとか使うとこなんじゃないの?
ループ処理終わるまでは、他の処理入らないと思う
191:Now_loading...774KB
10/11/27 14:33:31 oAjgEhGx
while(true)じゃ無限ループだよね
192:Now_loading...774KB
10/11/27 15:14:48 JVzaWPA9
色が段階的に変化している正方形をMCの中に並べています。
下のようにしたところ、黒から青に段階的に変わった後少し青みがある黒になってしまいます
その理由はわかるのですが、
虹のようなグラデーションに変化させるにはどうすればよいでしょうか?
for(var i=0; i<100; i++)
{
var box=new MovieClip();
box.graphics.lineStyle(1,0x0000FF);
var color = 0x000000+0x000010*i;
box.graphics.beginFill(color);
box.graphics.drawRect(0,0,80,80);
box.x=10+90*i;
stage.addChild(box);
}
193:Now_loading...774KB
10/11/27 15:16:23 WSq+tlM8
Flash10 AS3です
194:184
10/11/27 17:08:53 imszsrAY
>>190
>AS2.0?
残念、AS1です。某フリーソフトを使っています。そういう問題でしょうか。
なお、念の為言っておきますが、while (true); を実際のアプリケーションで使おう
としている訳ではありません。これは、時間の掛かる処理として模擬的に書いただけ
です。
>ループ処理終わるまでは、他の処理入らないと思う
イベント割り込みの入るタイミングは、どうなっているのでしょうかね?
どこかにドキュメントなど無いでしょうか? オライリー本をパラパラと眺めてみま
したが、使い方しか書いていませんでした。
195:Now_loading...774KB
10/11/27 17:22:42 7fGRmn6E
>>194
無料ならFlex使ったら?
Flash Playerはシングルスレッドで動作するから、割り込みという考え方が違うのでは?
何をやりたいかをはっきりさせれば、Flashではどういう方法で実現できるか
わかると思うけど
ドキュメントならLiveDocs見るのがはやいんじゃない?
196:184
10/11/27 18:26:16 imszsrAY
>>195
Flex という名前は時々目にしましたが、フリーだとは知りませんでした。
検討してみます。
LiveDocs は Adobe のサイトのマニュアルですね? それなら、今も、このウィンドウ
の下に開いています。しかし、これも使い方しか書いていません(読み方が不充分なの
かも知れませんが)。
197:Now_loading...774KB
10/11/27 18:45:45 WEWVw3xV
フラッシュの作品って、winでもmacでもlinuxでも1ドットの狂いもなく再現されるの?
198:Now_loading...774KB
10/11/27 23:07:04 iYDexJmd
>>197
実行プログラムであるFlashPlayerはOS毎に多少チューニングされるけど、共通して
コーディングの通りに動く。また、Winで生成したFlashPlayerもMacで動く。
これはHDDに例えるとモーターと記録部分みたいなもの。
つまり、バッファローのHDDと、IO-DATAのHDDのモーターは同一のものであっても、書き込み
や読み込みエラーはユニットの部品に依存する。
まあ、膨大な浮動小数点計算をバンバンやる描画なら狂うかも知れ無いが、今のところ
そんな場面には遭遇したことは無い。
試しに見てくれ→URLリンク(beautifl.net)
199:Now_loading...774KB
10/11/27 23:54:19 98WQJt3s
>>186
mytxtarea.focusRect = false;
URLリンク(help.adobe.com)
試してないけど多分これかな?
200:Now_loading...774KB
10/11/28 12:46:06 +8fgUxBB
Flash買ったからaction script3の習作って事でブロック崩し作ってるんだけど、
それぞれのクラスの連携どうしてる?
ボールクラス駆動時に
Ball.Update( Bar,Block );
みたいに、他のクラスの参照渡してるんだけど、少し気持ち悪いんだよなー
おそらくセオリーに反してるよね
あと、実行後にエラーが判る物が多すぎて面倒くさいねぇ
Cみたいにコンパイルエラー吐いてくれない
201:Now_loading...774KB
10/11/28 13:11:52 0rXqFecv
コンパイラーでわかるエラーはコンパイルエラー吐いてくれます
わからないものはどうしようもない
そんなのどんな言語だって同じだと思うが
202:Now_loading...774KB
10/11/28 15:00:40 +8fgUxBB
>>201
そうなんだけど、アクションスクリプトの方が動かさないと判らないエラーが多くない?
無い関数を呼ぶとか、無い変数を呼ぶとか、Cだったら動かす前にわかるけど、アクションスクリプトは動かしてからエラーが判明する
203:Now_loading...774KB
10/11/28 15:57:32 pxeNUDAj
無い関数・変数とかならコンパイルエラーはいてくれるよ。
設定がまずいんじゃない?
Flex Builder 3使用者より。
204:Now_loading...774KB
10/11/28 16:25:34 +8fgUxBB
>>203
そうなんだ。
Adobe Flash CS5使ってるけど、エラー吐いてくれないんだよなー
設定みてみよう
205:Now_loading...774KB
10/11/28 19:43:08 AYeIaKmB
親とクラス、クラス同士のやりとりは、どこからどこまでを、どこに割り振るかが
未だに自分の中で確立してないから、毎度ソース見直してどこにどう書いたか忘れるわ。
206:Now_loading...774KB
10/11/28 20:00:56 +8fgUxBB
>>205
//ボールクラス
Ball.Update( Bar,Block );
//ブロッククラス
Ball.Update( Ball );
みたいに、相互に渡してるんだけど行儀良くないよね?
親クラス作って、そのレイヤーに各クラスの構造体もどきを宣言するわけにもいかなしなぁ
207:Now_loading...774KB
10/11/28 22:27:44 Hs90nTHy
>>198
おおよかった。HTMLみたいにブラウザによって動作が違うのはもう耐えられないw
レスどうもです。
208:Now_loading...774KB
10/11/29 00:50:56 cZRc71SP
タイムラインにコード書いてるんだろ。MovieClipはダイナミックだからエラーでねー
209:Now_loading...774KB
10/11/29 02:55:55 GUiIZELK
>>200
210:Now_loading...774KB
10/11/29 03:12:38 k/F9JoqU
>>206
設計以前にAS3のコーディング規約から外れすぎてるのか
そのコードをどう読んだらいいのかわからない
Ball Bar Block はそれぞれ変数なのかクラスなのか
211:Now_loading...774KB
10/11/29 11:26:41 5g1R45sh
>>210
クラスの参照を渡してる。
でも、俺の駄目なクラス設計はおいといて、
相互に干渉するクラスってどういう風に設計すればいいのかな?
212:Now_loading...774KB
10/11/29 14:34:21 kSN1VGbE
>>192
RGBじゃなくてHSBを使うと虹のような色変化が簡単にできる
RGB←→HSBの変換は簡単な式なので、
HSBで変化させた値をRGBに変換して処理に渡せばOK
213:Now_loading...774KB
10/11/29 22:55:05 Ha77juhF
>>211
クラス設計の話でクラス設計はおいておくってどういうことだ!!
214:Now_loading...774KB
10/11/29 23:20:28 dEF80y46
>>213
俺のしょぼクラスはおいといて、AS3ではどういう風に相互干渉させてるのかって事を知りたいのさ
215:Now_loading...774KB
10/11/30 00:37:41 WMZWWi0v
たとえばどういう例が考えられる?
>>206ではさっぱり状況が分からない
216:Now_loading...774KB
10/11/30 01:55:09 F9Vs5Rn1
素直にgetterとsetterをstaticにしておいてどこからでもメソッド叩けるようにすればいいじゃない?
そもそも相互に干渉するクラスってのが何を指しているのかわからない。
217:Now_loading...774KB
10/11/30 11:32:08 KlvjJ6gw
>>216
おい。staticにする意味わかってるかい?
そのクラスのプロパティの現在の状態を返すことがgetter,setterの意味なのに、
そのクラスのプロパティもstaticにしないといけなくなって意味が無くなるでしょ。
値が固定的であれば、そもそもgetter,setterが必要無い。
>>215
まったくだ。
218:Now_loading...774KB
10/11/30 18:42:09 qPhK2Tfj
クラス生成したらアレイに突っ込んでって、
クラスから親経由で、アレイに突っ込んだ各クラスにforで命令送るとかでもいいと思うけど・・・。
親でBallArray宣言、ballクラス作成したらpush、
クラス側から for(略){ 親.BallArray[i].関数(引数) } みたいに。
まぁ上の人みたいにstaticやフラグ駆使するなりいくらでもやりようはあるだろうけど。
219:Now_loading...774KB
10/11/30 19:55:24 Ljs20/HG
俺プログラムとかまだまったく初心者だけど
action script マスターしたら企業とかでプログラマとして雇ってもらえるの?
220:Now_loading...774KB
10/11/30 19:57:48 KlvjJ6gw
マスターしたら、雇うところはどこでもあるだろうが、
言語仕様完璧なだけではマスターとは言えないから、難しいモンだな。
221:Now_loading...774KB
10/12/01 01:57:11 LBwiXM0T
>>217
ごめん、俺の勉強不足だ。
とりあえずソース書いた。
package{
import flash.display.MovieClip;
public class Ball extends MovieClip{
private static var _hoge:Ball;
public function Ball()
{
hoge = this;
}
public static function set hoge(hoge:Ball):void {
_hoge = hoge;
}
public static function get hoge():Ball {
return _hoge;
}
}
}
これでインスタンスをどこのクラスからでも参照できるからpublicなものなら参照も可能って言いたかったけど、基本クラスの場合はダメだねw
そもそもの>>206の意味がよくわかってないので的外れだったらごめん
正直独学でかなり不安なので俺にも教えてくださいw
222:Now_loading...774KB
10/12/01 15:12:01 cuX3cD1k
>>221
ボールをシングルトンにする意味は全くないのに>>206のはシングルトンに
見えるので話がこんがらがってるな
とりあえずそこはMovieClipじゃなくてSprite使おうよ
>>206 はたぶんオブジェクト間の衝突の扱いについて聞きたいんだと思うが
そんなもん規模によるから一概には言えないんだよな
PONGレベルならどんなヘボコードでも動くだろうし
逆に高度なものならBox2Dのような物理エンジンでも参考にすればとしか
223:Now_loading...774KB
10/12/01 15:59:46 v4vIsqK+
>>221
>>222の指摘もあるように、シングルトンに見えそうでもあるけど、関係ないよね?
インスタンス化される前提なの?意図がつかめない。
もう少し、具体的な条件を書いてくれるとわかりやすいんだけど。
224:Now_loading...774KB
10/12/02 00:35:31 4oS1+bCQ
flashで信長の野望みたいなゲーム作れる?
225:Now_loading...774KB
10/12/02 01:33:24 4oS1+bCQ
馬鹿な質問をしたかもしれない
226:Now_loading...774KB
10/12/02 02:28:46 pbqGD51J
>>222
すまん、>>222のおかげでようやく理解できたと思う。
>>206のが、クラス外のにどうやってアクセスするのがいいのって見えてたっすw
あとSpriteの忠告ありがとうw
>>223
>>222のであってる。
>>206のBallっていうの見てインスタンスと勘違いしてたっす、ごめん。
ようやく理解した?なので書いてみると、簡単な衝突判定だけならか>>218の人みたいに衝突用のクラスを生成するときに引数で配列とかオブジェクトを渡すっ感じが好き。
なんかスレ汚しになってごめん。
227:Now_loading...774KB
10/12/02 20:05:33 H2VBNs8U
質問をさせてください。
入れ子の関係にあるクラスの間で、
子オブジェクトがremoveChildされたあと、
親オブジェクトがそれを関知して自身をremoveChildするような
方法はありますか?
具体的には
親クラスで、
子クラス内の「タイマーイベントを使ったエフェクト→removeChild(子)」
をするメソッドを呼び出す。
↓
子クラスでremoveChild(子)が完了したときに
親クラスでremoveChild(親)を実行する。
という流れを作りたいです。
いまのところ、親クラスでタイマーを用いて
removeChild(子)されたかを定期的に検知して、
されているならremoveChild(親)を実行する
というものしか思い浮かびませんが、
もっと上手い方法がある気がしてなりません。
よろしくお願いします。
228:Now_loading...774KB
10/12/02 20:09:53 LKHznHKS
DisplayObejctだったら、Event.REMOVEDつかったら?
229:Now_loading...774KB
10/12/02 20:12:19 LKHznHKS
自作クラスでも、自分でdispatchすればいいか。
230:Now_loading...774KB
10/12/02 21:31:00 qkF4i2hY
子のリムーブと親のリムーブ書いた適当な関数作って、
子のリムーブのタイミングで代わりにその関数呼ぶんじゃだめなの?
231:Now_loading...774KB
10/12/04 10:19:47 y7tpVgoW
質問させて下さい。
外部SWFでリンケージしたBGMを親のswfから鳴らしたいのですが上手くいきません。
//testに外部swfを読込んでフレームを移動させる所まではできたのですが・
test.content.gotoAndStop(2);
//外部swfの音楽を鳴らすには、どう記述したら良いのでしょうか。
var sound_obj : Sound = new test.content.bgm01( );
// サウンドを再生
sound_obj.play();
何卒よろしくお願い致します。
232:Now_loading...774KB
10/12/04 13:10:04 FfkRSRzw
>>231
AS3.0?
親子間のクラス参照は、ちょっとだけめんどいよ
LoaderInfo.applicationDomain.getDefinitionか
LoaderContex使う
233:231
10/12/04 15:14:40 66ngvSVr
>> ID:FfkRSRzw
お忙しい所、返信ありがとうございます。
使用しているのはas3.0です。
キーワードをgoogleらせて頂きました、申し訳ありません。
googleったサイトは、まだ私では理解ができませんでした。
今後も調べさえて頂きます、
も、もしですが、お手間を取らせて申し訳ございませんが、
簡単な記述例をご存知でしたら教えて頂ける様でしたら幸いです。
平にひらに、お願い致します。
234:227
10/12/04 17:29:08 mNWAnfae
>>228
>>229
>>230
アドバイスありがとうございます!
無事、解決しました!
Event.REMOVEを使う方法でいけました。
235:Now_loading...774KB
10/12/05 01:26:35 Daka8+C5
googleったってすごいなw
ぐぐるったw
236:Now_loading...774KB
10/12/06 16:36:00 vmXdei4p
actionscript2.0(flash lite)でダイナミックテキストをmarqueeのように右から左へ流したいのですが、
ダイナミックテキストのx位置がとれずに困っております。
ダイナミックテキスト自体、xyの値を保持していないのでしょうか?
方法等をご指導いただけると助かります。
↓は取得したい値です
URLリンク(www1.axfc.net)
237:Now_loading...774KB
10/12/06 23:47:23 gqEY650b
どういうことか今一分からないけど、テキストでxy取得できないなら適当なスプライト作ってaddchildするとか、
テキストを更にムービークリップのシンボルにでもしてみればいいんじゃないのかな
238:Now_loading...774KB
10/12/07 11:04:11 /OKQcKxE
>>237
レスありがとうございます。
ダイナミックテキストの部分はPHPプログラム側から表示文字を変える形になります。
「右から左」はモーショントゥイーンもできますが、できればactionscriptにて実装しようと思っておりました。
for (i=0;i+mbstrlen(moji)>500;i++) {
moji._x +=i;
}
シンボルにするとダイナミックテキストの文字が変数にて指定できないようでした。
わかりにくいかと思いますが、よろしくお願いいたします。
※flaファイルをアップしても問題ないでしょうか?
239:Now_loading...774KB
10/12/07 14:44:32 whHvL3CP
>>238
ダイナミックテイストフィールドに、インスタンス名じゃなくて変数入れてるの?
だとしたら、まずそれをやめる
テキストフィールドの位置は、Textfield._x、_yでとれる
スクロールは、Textfield.scrollや、hscrollを使える
文字に直接アクセスしたいなら、Textfield.textで
それから、forループでのアニメーションは無理だから、onEnterFrameとか
setIntervalあたりを使う
ヘルプかAS2.0のリファレンス本やサイト等で、まずはTextfieldについての基本を確認するべき
240:Now_loading...774KB
10/12/07 15:44:28 /OKQcKxE
>>239
レスありがとうございます。
後出しで申し訳ないのですが、flash liteの1.1なのでonEnterFrameやsetIntervalは使用できないようです。
自分でいろいろ試して、ある程度できるようになりました。
ダイレクトテキスト(変数moji)をシンボル化→シンボル名を指定(シンボル名simbol)
simbol.moji = "TEST";
これでひとまずは問題解決できました。
241:Now_loading...774KB
10/12/07 16:08:07 whHvL3CP
>>240
>flash liteの1.1なのでonEnterFrameやsetIntervalは使用できないようです。
それはすまんかった
しかしflash lite1.1って、Flash4ベースで、AS2.0ですらないぞ
2.0よりもはるかに制限が多いので、ごっちゃにしちゃいかん
とりあえず解決オメ
242:Now_loading...774KB
10/12/07 19:08:49 /OKQcKxE
>>241
いえいえ、ありがとうございます。
携帯用とはいえ本当に制約多すぎで…
AS2.0だったらはるかに楽なんですが
243:Now_loading...774KB
10/12/07 21:12:33 b0z4UJis
FlashCS5でTLFテキストを使用したFlaファイルからパブリッシュした
SWFファイルを他のSWFがLoaderを使って読み込むと「Test」のような型が「Test@306eb8b1」のようになってしまいます
これをどうにか、もとの型に戻したいのですがどうすればいいでしょうか?
ちなみにObject型に変換したらメソッドにアクセスすることはできましたが
コード保管されないので気持ち悪いです。
よろしくお願い致します。
244:Now_loading...774KB
10/12/07 21:15:01 /o04BoZk
Objectじゃなくて元の型にキャストしたらいいんじゃないの?
245:Now_loading...774KB
10/12/07 21:31:29 b0z4UJis
TLFテキストを使用したSWFはLoaderで読むと何故か型がおかしくなり、
無理やりキャストするとTest@306eb8b1をTestに変換できないといわれちゃうんです(汗
246:Now_loading...774KB
10/12/07 21:48:53 /o04BoZk
あーなるほど。
Test型をswcで書き出した後に
それをそれぞれで使ってやる形にするんだったっけか。
間違ってるかもしれんけど。
247:Now_loading...774KB
10/12/07 22:37:37 b0z4UJis
なるほど、SWCで書きだすとできるんですか!試してみます!
248:Now_loading...774KB
10/12/07 22:40:01 /o04BoZk
間違ってたらゴメンな
249:あっちゃん
10/12/08 00:33:24 SqHjkwVv
突然で申し訳ないのですが、Flash について詳しく書かれていましたので書き込みさせて
頂きました。
個人でグラフィックデザインをしてますので他に聞ける技術者
がおらず途方にくれ書き込みさせて頂いております。
この度お聞きしたいのはフラッシュ環境においてのフォントを
表示するときの事です。
フラッシュ内でフォントのアウトラインをとると線がぼやけて
しまうので、デバイスフォントを利用するを選び綺麗にパブリ
ッシュすることが出来るのですが、この方法ですと自分のパソ
コン内でしか綺麗には映らず他のパソコンでは他のフォントに
マッピングされてしまいます。
サーバーにフォントを一緒にアップロードすることによってフ
ラッシュ(swfデータ)がそのフォントデータを読みこんで表
示をするような事は可能でしょうか?Action scriptでフォン
トデータを読み込んだり出来ませんでしょうか?
お手数をおかけして申し訳ありませんが、教えて頂けると非常
に助かります。
宜しくお願いします
250:Now_loading...774KB
10/12/08 00:54:12 QQNxjbMk
>>249
できるけど、フォントによってはラインセンス上、そういう行為がダメだったり
高価だったりするよ
その点は、大丈夫?
そもそもフォントのレンダリングにもいろいろあるけど、そのへんは試してみての感想?
embedなら、満足のいく結果といえるの?
251:あっちゃん
10/12/08 01:12:35 SqHjkwVv
フォントはもう買いとったものなのでオッケーです。
フラッシュでのアウトラインはもう試しました。
イラストレータから取り入れたり、フォトショップから取り入れるのはいいのですが、もうすでにアニメーションさせているので無理です。
もうムービーデータはほぼ出来ているので、
できればデバイスフォントのままサーバーに一緒に送ってサーバー上のフォントデータとリンクできたら最高です
252:あっちゃん
10/12/08 01:18:55 SqHjkwVv
実はこのフラッシュファイルがほぼ完成してから、デバイスフォントが他のpcで映らない事に気がついたのでかなりショックでした。
253:Now_loading...774KB
10/12/08 01:32:09 QQNxjbMk
>>252
なにか勘違いしていないか?
デバイスフォントって、それぞれの実行環境にあるフォントを使うってことで
そういう名前のフォントがあるわけじゃないぞ?
あと、アウトラインとembedは、違う意味で使ってるんだが、もしかして
同じ意味で使ってる?
共有ライブラリでフォントを使うことはできるが、要は埋め込み(embed)と同じだよ?
アウトライン以前に、フォントを埋め込んで、レンダリング品質を変えて試してみたのか?
254:Now_loading...774KB
10/12/08 18:12:24 XsgrymiB
AS2にあって、AS3で廃止された機能を使いたいのでAS2で書いてswfにしようと考えています。
2点ほど質問があるのですが、
AS2で書いても現在のプレイヤーで動くのでしょうか?
AS2で書いたものをswfにするのにはどのような方法が今使えるでしょうか?
よろしくお願いします。
255:Now_loading...774KB
10/12/08 18:16:13 wKwFIweR
>>254
1>動く
2>意味がよくわからんのだが
それこそFlashCS5とか使えばいいだけでは?
でも、そもそもAS2でできて、3でできないことって何?
逆ならわかるが
256:Now_loading...774KB
10/12/08 18:39:04 5Xo8AIn1
>>254-255
duplicateMovieClipかな?
AS3からAS2コンテンツにアクセスする「ForcibleLoader」というライブラリはある。
URLリンク(www.libspark.org)
参考書「ActionScript3.0ライブラリ入門」(新藤 愛大 ほか)翔泳社
257:Now_loading...774KB
10/12/09 01:04:09 bxuo0qNa
基本的な質問ですみません。
親swfから子swfを読み込んでいるケースで
子swfから親swfの関数やインスタンスを参照する場合
_parentRoot=root.parent.parent;
等とした上で
_parentRoot.関数名();
_parentRoot.インスタンス名
と記述することで参照することは理解できたのですが、
その記述をしたうえで子swf単体でパブリッシュをすると
(親swfをパブリッシュした場合は、それで問題なく動作するのですが)
以下のようなエラーが出てしまいます。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
at com::hoge()
制作時は子swf単体でテストをしたいので、
それをなんとか回避したいのですが、方法がわからず困っています。
どなたかご教授いただけますと助かります。
よろしくお願いいたします。
258:Now_loading...774KB
10/12/09 10:04:29 ujEDkVq+
>>257
単体で動作した場合、当たり前だけど親が取得できなくなるから
_parentRootにはnullが代入される。
なので_parentRootを使っている場所にnullだった場合は処理しないようにすればいいとおもう。
if( _parentRoot ) _parentRoot.testFunc();
259:Now_loading...774KB
10/12/09 10:15:22 ujEDkVq+
as3で配列の要素をインデックスを指定して捨てたいのですが
以下のような関数を定義する方法以外にもっといい方法ありますか?
private function nukidashi(ary:Array, i:uint):Array
{
return ary.slice(0,i).concat(ary.slice(i+1) );
}
var ary:Array = [ 0, 1, 2, 3, 4, 5 ];
ary = nukidashi(ary, 3);
trace( ary ); // 結果:0,1,2,4,5
インデックスを指定でき、popやunshiftのように元の配列を書き換えれるメソッドが
Arrayクラスにあればいいのですが
ざっとリファレンスを見た感じだとありませんでした(汗
これでできるのでこれでいいかなぁとも思っていますが
もっと良いやり方がありましたらご教授よろしくお願いします。
260:Now_loading...774KB
10/12/09 10:25:36 COe0pfKa
>>249と>>257はマルチポスト
たてつづけにマルチってどうなってるのよ?w
261:Now_loading...774KB
10/12/09 12:43:18 ujEDkVq+
Eventクラスを継承したカスタムイベント、たとえばEnemyEventを作った場合に
Eventクラスのプロパティであるtargetにお好みのオブジェクトを代入したいことってあるとおもうんだけど
targetプロパティが読み取り専用だからtargetに好きなオブジェクトを代入できませんでした(汗
ちょっと無理やりでEnemyEventクラス側でtargetプロパティをgetメソッドでオーバーライドしたら
EventDispacher内部で型変換ができないっていう謎のエラーが出るようになった…
AS3では自分で作ったEnemyEventのようなカスタムイベントのtargetプロパティは必ずnullになるのが常識ですか?
それと、個人的には作ったクラスに使わないプロパティやメソッドがあるのは気持ち悪くて
それを極力無くしたりしているのですが(継承でなくコンポジションを使うなど)
EnemyEventは、Eventクラスを継承しているので
COMPLETE等の余計な定数も一緒についてきちゃうわけですが
みなさんはそこら辺についてどういう考えをもっているのか興味深いです。
「EnemyEventのCOMPLETEって何が起きたときに呼ばれるの?」ってきかれたら
「ああ、それは呼ばれることはないです…。」って答えるのはなんかスマートじゃないなぁと思うんです。
262:Now_loading...774KB
10/12/09 13:49:29 IMRHCzrp
targetってEventをDisptchしたものが入るもんだろ。
EventDispatcherを使えばちゃんと入るとおもうが。
263:Now_loading...774KB
10/12/09 14:08:50 hBnOJteP
XMLから取得した値を日付に変換して日護計算したいです。
<parent day="2011,01,01" >
<child>Item</child>
<child>Item</child>
</parent>
こういうXMLがあり、「Item」を見つけたら親の「day」を見て、
賞味期限=2011年01月01日と出力、
10日足して
消費期限=2011年01月11日という結果を出力したいのですが、
var n = XMLから取得したdayの値;
var d = new Date(n);
で日付変換して任意の日数をプラスしようとしたところ、
Dateの引数にはString型のデータを入れられないという旨のエラーが出て処理できません。
var d = new Date(2011,01,01);
となるようなイメージだったのですが、どなたかご教示くださいませ。
環境はCS5 のAS3で、XMLの仕様は変更できません。
264:Now_loading...774KB
10/12/09 14:11:42 piU214b2
>>263
そのエラーの通りじゃん
nがStringだから、数値にしてよって言われてるだけ
265:Now_loading...774KB
10/12/09 14:23:34 hBnOJteP
>>264
ありがとうございます。
var n:Namber = XMLから取得したdayの値;
とかにすると、変換できない旨のエラーが出ます。
266:Now_loading...774KB
10/12/09 14:54:03 piU214b2
>>265
それ手抜きしすぎw
もし2011,01,01という値を渡したいなら、2011,01,01という塊ではなく
2011という数値(年)、01(月)という数値、01(日)という数値を
それぞれ用意する必要がある
つまり、"2011,01,01"という文字列を、3つの数値に分割するってこと
String.split()使うとか
あるいは、文字列で有効な形("月/年/月"、この場合"01/01/2011")にするって手もある
まずは数値、文字列、配列あたりのメソッドをいろいろ試して、何がどういう働きをするか、
確認してみるのがいいと思う
int(),uint(),Number(),parseInt(),parseFloat()あたりに、文字列つっこんで
どうなるかとか試してみるとか
267:Now_loading...774KB
10/12/09 15:20:19 hBnOJteP
>>266
>文字列で有効な形
神ッ!!!!
スラッシュ区切りで2011/01/01と入れたら無視されたのでスラッシュ区切りは無理なんだと思っていました。
順序が逆だったんですね。
最高です、ありがとうございました!!
268:257
10/12/09 20:21:35 bxuo0qNa
>>258、260
返信おくれてしまい申し訳ありません!
2つの板に書くのっていいことじゃなかったんですね…。
2ちゃんねるに書き込むのも
ほぼほぼ初めてで見よう見まねで投稿していたので
よく知らず、大変失礼しました。以後気を付けます。
ご指摘の通り、切り分けを行ってみたところ、
うまくいき、紆余曲折ありましたが、動作するようになりました!
ありがとうございました。
269:Now_loading...774KB
10/12/09 22:43:59 +3HzEd6W
>>257
MovieClip(stage.getChildAt(0))._hoge、なんかも便利じゃないかな。
>>257
MovieClip(stage.getChildAt(0))で、プレイヤー上で一番上のswdを指定出来るから、
親にも子にも同じ名前の関数や変数作っといて、別の事かいておけば、
自分のSWFを起動した場合は自分のを、子になった場合は親のを読みに行くんで色々切り替えられる。
270:Now_loading...774KB
10/12/09 22:46:06 +3HzEd6W
間違ってレス番二回も入れてしまった
271:Now_loading...774KB
10/12/09 23:26:48 YJgHySr5
AS3(Player10),FlashCS4,WinXP
長いパスを持つ(深い場所にある)MCのRootから見た時の参照方法で質問です。
例えば、addChildで繰り返し追加した結果、root.mc0.mc1.mc2.mc3.mc4.mcA という
パス(文字列)になった時、この文字列を使って参照したく思います。
安易な方法としては、getChildByName()を多用し、
getChildByName("mc0").getChildByName("mc1")getChildByName("mc2")・・・
とすれば良いかも知れませんが、これだと冗長なのでもっとスマートな方法を探して
います。
(ググ"ったり、本で調べましたが分かりませんでした)
宜しくお願い致します。
272:Now_loading...774KB
10/12/10 00:29:54 a/GpO+MV
そういうのまとめた関数一個作っといてその関数読みに行くだけってのはやっぱ求めてるスマートは違うかな
273:Now_loading...774KB
10/12/10 01:43:32 tSRTG3Ao
serchChild( childName:String ) みたいなstaticメソッド準備するのはどうだろう。
274:Now_loading...774KB
10/12/10 03:04:02 tSRTG3Ao
addする時にMapにつっこんどくほうがいいかなぁ。
275:Now_loading...774KB
10/12/10 04:23:54 sFE5uT0X
(色相の)HSV値をRGB値に変換する記述で質問です。
使用環境は、FlashCS4,ActionScript 3.0,XPです。
実験としてあるRGB値を適当に選び、RGB→HSV→RGBの復元を行い、元のRGB値との
差異を見ました。
最初、URLリンク(kawa.at.webry.info)を参考にしていたのですがRGBに
戻したときの値がどうしても全く一致しなかったので
URLリンク(yokohara.blog50.fc2.com)を試しました。
後者は近い値が出ましたが、それでも元のRGB値と開きがあります。
そこで質問ですが、皆さんのお薦めの変換コードはありますか?(すいません、出来れば
上の2つの検証を願います)
あと、frocessingのfrocessing.color.FColorに HSVtoRGB(h, s, v) というのがありますが、
(試した範囲で)frocessing.display.F5MovieClip2Dを継承したクラス内での使用が不可だった
ので保留しています。
276:Now_loading...774KB
10/12/10 06:57:27 frmzyASl
>>272-274
さんくすです。
なるほど。専用の関数で対処します。
277:Now_loading...774KB
10/12/10 10:49:27 tSRTG3Ao
>>275
計算でやっている以上無理。
元の値を保持するクラスを作るのがお勧め。
278:Now_loading...774KB
10/12/10 20:25:18 axeWLHWN
環境:Flash MX(AS1) / Windows XP SP3
URLリンク(www.kirupa.com)
URLリンク(www.kirupa.com)
このページの雪が降っているFlashを、逆方向(上昇)に動くよう修正したいです。
始めたばかりで関数の意味もよく分からないままで恥ずかしいのですが、
何箇所か+-や数字を入れ替えたりだけはしてみましたが、希望する動きを実現できませんでした。
(↓の部分などの+-を入れ替えると上昇するのですがループしない)
> i = 1+Math.random()*2
> . this._y += i
ヒントだけでも教えていただけるとありがたいです・・・
279:Now_loading...774KB
10/12/10 23:08:41 PsX3ku2Q
>278
パッと見ただけで恐縮ですが、
↓ここらへんで初期値を設定しているので、
if (this._y>=movieHeight) {
this._y = -5;
}
こういう風にしてみてはいかがでしょうか?
if (this._y<=0) {
this._y = movieHeight+5;
}
検証はしていませんが、おそらく上下が入れ替わったことで
行きすぎたクリップを戻す処理の内容も変更する必要があるかと
思います。
280:275
10/12/11 00:43:51 h1Cy0rub
自己レスです。
すいません、最初の(A)URLリンク(kawa.at.webry.info)を再検証したところ、
大体正しい値が出ました。
とは言っても元のRGB値とは開きがあり(特に青色[B])、後者の
(B)URLリンク(yokohara.blog50.fc2.com)よりは元の値に近い程度です。
※比較上の問題です。
結論として、(A)さんのコードで進めます。
(A)の作者さん間違った使い方をしてごめんなさい。
281:Now_loading...774KB
10/12/11 01:49:23 NEFmoauj
>>278
AS見てないけど、雪降らしてるMCを逆向きに配置すればいいのではないか
282:278
10/12/11 10:52:18 uZux/2Xv
>>279
>>281
レスありがとうございました。
279さんの
if (this._y<=0) {
this._y = movieHeight+5;
}
に加えて、
i=-1-Math.random()*2
に修正したら、希望の動きを実現できました。ありがとうございました。これからもっと勉強したいと思います。
283:Now_loading...774KB
10/12/11 12:13:42 OOMeUXO0
mtasc -header 800:600:25 -main -swf default_mtasc.swf -cp ~/worksp/test/src src/com/test/test.as
このようにコンパイルしようとすると、
Directory 'std' containing MTASC class headers cannot be found :
Please install it or set classpath using '-cp' so it can be found.
のようなエラーで失敗してしまいます。
正しくはどのように書けばいいのでしょうか?
284:Now_loading...774KB
10/12/11 17:56:09 OOMeUXO0
>>283
自己解決しました
285:Now_loading...774KB
10/12/11 19:39:24 8ZnxvdiP
ExternalInterfaceを使わずに、javascript側からasの関数を呼ぶことはできますか?
htmlにはobjectとembedで貼付けしています。
286:Now_loading...774KB
10/12/11 20:38:52 EtqylbXZ
使用環境を書こうよ
287:Now_loading...774KB
10/12/11 20:46:02 8ZnxvdiP
>>286
すいません。AS2を検討しています。
288:Now_loading...774KB
10/12/11 23:16:22 7kR4FmVr
AS3(Player10),WinXPです。
下のような中空の図形の描画するにはどうすれば良いでしょうか?
URLリンク(uproda11.2ch-library.com)
オレンジ色の部分はパスで、パスを繋いでできた2つの環状図形の間に
緑色を流し込むような感じです。
※CS4などのバケツツールで流し込む感じです。
本などを読むと、ドーナナッツ図形を形成するのにビットマップで塗りつぶす
方法が紹介されていいますが、これだと塗りつぶし用の図形を別に持って
いなければならないためこの方法は避けたいです。
frocessingはで塗ることも考えましたが、ライブラリーを用いないで塗る
方法を探しています。
289:Now_loading...774KB
10/12/11 23:17:43 7kR4FmVr
すいません。
(上は) ドーナナッツ → ドーナッツ
290:Now_loading...774KB
10/12/12 11:55:10 MwovirsQ
>>288
何も難しいことないんじゃ?
パス描いて塗りつぶし。
塗りつぶしはGraphics.floodFill()
パスもGraphicsの中にあったはず
291:288
10/12/12 14:45:14 6zWKbxgs
>>290
floodFill() について調べましたが、これは BitmapData.floodFill で、
確かにバケツツールのような塗りができます。
しかし、特定の点を通る曲線パス(連続曲線・スプライン曲線)を drawPath()
でやろうとしましたが、やり方が分かりません。
再度アドバイス願います。
292:Now_loading...774KB
10/12/12 14:59:49 MwovirsQ
>>291
flexのリファレンスGraphicsページ良く読め
293:288
10/12/12 15:52:02 6zWKbxgs
>>292
すいません、FlashCS4です。
294:Now_loading...774KB
10/12/12 16:11:52 MwovirsQ
flashもflexもGraphicsは同じ。
curveToじゃだめなの?
ベジェじゃだめなら、スプライン曲線の描画関数はなさそうだから、自作するしかない。
295:Now_loading...774KB
10/12/12 21:07:40 F02GT1D3
はじめまして。
TwitterのAPIからデータを取得したらイベントを発生させたいと
思っています。
AS3の自作Twitterクラスのコンストラクタで、
addEventListener("twit", onTwitterComplete);
としています。
Mainクラスから毎フレーム
dispatchEvent(new Event('twit'));
しているのですが、onTwitterCompleteが呼ばれません。。。
Mainクラスではtwitイベントを検知できるのですが、
Twitterクラスでは検知できません。
どうすればよいのでしょうか?
296:Now_loading...774KB
10/12/12 21:18:48 F02GT1D3
295です。
自分のクラス内でdispatchしたら
listenできるみたいです。
他のクラスにイベントを送信するにはどうすればよいのでしょう。。?
297:Now_loading...774KB
10/12/12 21:25:58 F02GT1D3
やりたいことはこれです。
URLリンク(flashjp.com)
別クラスのイベントを取得するメジャーな方法は何でしょうか?
298:288&291
10/12/12 22:13:56 1rJ85zSU
>>294
curveToだと特定の座標を頂点とする曲線を描画するのにコントロールポイントの位置を計算
しないといけないので避けています。
299:Now_loading...774KB
10/12/12 23:09:44 F02GT1D3
295です。
自己解決しました。
発信側のクラスでlistenしつつ、
登録する関数は他クラスにすればできました。
300:Now_loading...774KB
10/12/13 01:53:28 KZ8jiryq
>>298
計算式なんてググれば見つかるんだから自作すれば?
301:Now_loading...774KB
10/12/13 02:28:06 ggiphfWJ
準備されてなければできないんだったら、できないよね。なにも。
302:Now_loading...774KB
10/12/13 20:16:04 lNJU+C/P
AS3です。
テキストボックスの文字についてです。
テキストボックス内で、文字上に詰まりすぎいるため下に調整したいです。
(1)テキストボックス内で、文字の表示する縦方向の位置を調整する仕組み
(2)leftMargin、rightMarginのように、縦方向の余白を調整する仕組み
のいずれかはあるでしょうか?
よろしくお願いします。
303:Now_loading...774KB
10/12/14 03:22:01 WRZAUxnY
WinXP-ProでFlashProCS4,AS3,Player10
入れ子のMCからStageのプロパティを参照するにはどうしたら良いでしょうか?
今やっているのは、Stage(root)にMC0をaddChildして、更にこの中にMC1をaddChild
して、ここから stage.quality = StageQuality.MEDIUM; や stageW = stage.stageWidth;
などとして参照&代入したく思っています。
ところが、ムービーのデバッグでは stage.quality = StageQuality.MEDIUM; の行
でエラーとななります。
304:Now_loading...774KB
10/12/14 20:56:55 MlLvoTwX
Flash超初心者です
Flash CS5体験版を使っておりタイピングゲームを作ろうと
まず基礎からやっているのですが
URLリンク(homepage3.nifty.com)
このサイトどおりやっても文字が変わらないのです
どうしたらいいのでしょうか?よろしくお願いします
305:Now_loading...774KB
10/12/14 21:20:02 yMKF6q3g
>>304
そのページAS1.0あたりの解説だから、今から参考にするにはあまり適さない
そして、Flashドキュメントの設定でAS3.0になっていると、AS2.0以前の記述では
エラーになったりする
>どうしたらいい
AS3.0の基本を解説をしているサイトを参考にする
こことか↓
URLリンク(hakuhin.jp)
306:Now_loading...774KB
10/12/14 22:30:34 MlLvoTwX
>>305
丁寧な回答ありがとうございます
そのサイトを見て勉強しようとおもいます!
307:Now_loading...774KB
10/12/14 23:09:58 SvfVtcrU
AS3 で質問です。
EventDispatcher.hasEventListener(eventType) でイベントリスナーの有無を調べることができますが、特定のリスナーの登録を調べる方法はありますか?
例えば以下のコードで
_sprite.addEventListener(Event.ENTER_FRAME, _loop1);
if (_flag == true) _sprite.addEventListener(Event.ENTER_FRAME, _loop2);
_sprite.hasEventListener(Event.ENTER_FRAME); // true
変数 _flag を参照せずに _sprite に _loop2 がリスナーとして登録されたか調べるにはどうしたらいいでしょうか。
308:Now_loading...774KB
10/12/14 23:23:06 cZazDILt
なんか、ちぐはぐな質問だと思うんだが。
>_sprite.hasEventListener(Event.ENTER_FRAME);
には、_flagは関係ないけど。
309:Now_loading...774KB
10/12/14 23:26:15 RkbJKcKU
URLリンク(blog.livedoor.jp)
310:Now_loading...774KB
10/12/14 23:46:14 SvfVtcrU
>> 308
>> 307は、
_flag が true の場合に _loop2 をエンターフレームリスナーとして登録、
_loop2 が登録されたか _flag を参照せずに調べたいが、
_sprite.hasEventListener(Event.ENTER_FRAME);
では _loop1 が登録されているので true を返す
それなら _sprite に _loop2 が登録されているか調べるには?
という例にしたかったんですけどおかしいですか?
311:Now_loading...774KB
10/12/14 23:55:59 cZazDILt
やっと意味がわかった。
_loop1と_loop2があることが認識できなかった。
最初の2行だけで十分。逆に混乱した。
結論から言うと無い。
とはいえ、登録されているかどうかわからない関数は
いったんremoveしてから再度登録すれば良いだけで
この方法で問題がある場合が思いつかない。
312:Now_loading...774KB
10/12/15 00:01:00 jIXn/Sc2
あ、無いことは無い。けど、flag管理する手間と同じような気がする。
313:Now_loading...774KB
10/12/15 00:10:37 DWxVF8Rn
>>311
やはりありませんか。
方法としてはとりあえずremoveしちゃうかフラグ管理するかってことですね。
それらの方法で実装を進めることにします。
ありがとうございました。
314:Now_loading...774KB
10/12/15 06:12:47 kmIAAnjx
wonderflの作品をFlashCS4に適用した際の質問です。
URLリンク(wonderfl.net) の背景を白からステージの色にしようと
[SWF(width = "465", ・・・, backgroundColor = "#ffffff")] の行を外したところ
白のままでした。
どうしたら良いでしょうか?
315:314
10/12/15 21:51:00 Qyimsn8M
(自己レス)
解決しました。var buffer:BitmapData = new BitmapData(・・・)の BitmapDataの第3引数
をtrueにして、第4引数で透明度が0になるよう0x00ffffffなどとすればOKでした。
316:Now_loading...774KB
10/12/16 16:21:13 +aa+fzut
AS2で質問です
変数の名前を変数で指定する方法はありますでしょうか
例えば
hoge='abcd';
root.変数名 = 777
trace(_root.変数名);
結果777
317:Now_loading...774KB
10/12/16 16:22:24 R5uARbPT
>>316
配列アクセス演算子
318:Now_loading...774KB
10/12/16 16:22:25 +aa+fzut
失礼しました
hogeは変数名のことです
319:Now_loading...774KB
10/12/16 16:29:44 +aa+fzut
>>317 ありがとうございます
320:Now_loading...774KB
10/12/16 19:02:06 dqBOiv/T
<data1 name="hoge" time="1234567890" />
<data2 name="hoge" time="1234567890" />
このような形式のXMLがあるときに、data1,data2のどちらであるのかを取得したいです。
どのような感じで取り出せるのでしょうか?
321:Now_loading...774KB
10/12/16 19:56:01 FAs+UElR
ほんとうにそんな形式なの?DTDかスキーマ無いの?
<data type="data1" name="hoge" time="1234567890" />
<data type="data2" name="hoge" time="1234567890" />
とかの間違いじゃなくて?
322:Now_loading...774KB
10/12/16 23:14:59 UQvXh+d7
Actionscript3.0 CS4についてです。
クリック音をつけたところ、音が微妙に遅れて聞こえます。
音声の頭はぎりぎりまで削りました。10KBくらいです。
MP3はse_clickで書き出ししています。
//クリック音生成
var click_snd:Sound = new Sound();
click_snd = new se_click();
//ムービークリップクリックで再生
mc.addEventListener( MouseEvent.CLICK, fn);
function fn(event:MouseEvent):void{
click_snd.play();
}
323:Now_loading...774KB
10/12/16 23:34:54 MAIq0g5U
>>322
CLICK じゃなくて MouseEvent.MOUSE_DOWN はダメ?
324:Now_loading...774KB
10/12/16 23:45:42 UQvXh+d7
>>323
両方書いて比べたところきちんと差が出て聞こえました。
MouseDownでいきたいと思います!ありがとうございます。
325:Now_loading...774KB
10/12/17 17:21:39 +aDUJ6pr
while ループ中に
ダイナミックテキストにループ回数を表示したいのですが
どうすればいいでしょうか
while{
_root.counter++;
処理
}
だとダイナミックテキストに反映されませんでした
326:Now_loading...774KB
10/12/17 17:39:38 rjVa84hu
関数が終わらないと表示更新がされない仕様なので、
whileループではなく、Timerを使う。
327:Now_loading...774KB
10/12/17 17:39:54 JaoLYhQL
>>325
ループが終わるまで描画更新されないから、「ループ中に」というのは無理
繰り返しを描画に反映させる場合は、ループ使わずEvent.ENTER_FRAMとかだけど
その記述はAS1.0あたりじゃないですか?
ASのバージョンも書かないと、適切な回答つかないすよ
328:Now_loading...774KB
10/12/17 18:08:47 +aDUJ6pr
ありがとうございました。
最近はじめたのでちんぷんかんぷんですみません
329:Now_loading...774KB
10/12/17 21:44:17 h9cLccW2
・actionscript3
・cs4
・URLリンク(sky.geocities.jp)
・上記のアニメーションを作りました。
・現在は全てのボタンをクリックすると、画面上に3つのアニメーションが残るのですが、
やりたい事は、最後に押したボタンのアニメーションだけを残るようにしたいです。
・例えば最初に「start01ボタン」を押した時、「start01ボタンで動いたアニメーション」が
動きます。次に「start03ボタン」を押したときに「start01ボタンで動いたアニメーション」
が最初のフレームに戻し、「start03ボタンで動いたアニメーション」だけにしたいと思っています。
・本当に初心者で、用語やコードを張る位置も分からないので、コードの張る位置なども教えてほしいです。
mc01.stop();
this.mc02.stop();
this.mc03.stop();
this.start01.addEventListener(MouseEvent.CLICK, onClickStart1);
this.start02.addEventListener(MouseEvent.CLICK, onClickStart2);
this.start03.addEventListener(MouseEvent.CLICK, onClickStart3);
function onClickStart1(event:MouseEvent):void
{
this.mc01.play();
}
function onClickStart2(event:MouseEvent):void
{
this.mc02.play();
}
function onClickStart3(event:MouseEvent):void
{
this.mc03.play();
分かる人よろしくお願いします。
330:Now_loading...774KB
10/12/17 22:08:53 /O6PfZuS
なんか面白いのが出てる
3Dベクター表示とオフライン動作に対応したAndroid版「Google Maps 5.0」
URLリンク(journal.mycom.co.jp)
これのFlash用APIでないかなあ・・・
331:Now_loading...774KB
10/12/17 22:36:42 puG8hwME
AS3で質問があります
Timerを使ったときに
var time = new Timer(1,0);
としているのですがなぜか3ケタ目が1秒になってしまいます
どうしたら4桁目を1秒にすることができるでしょうか?
よろしく尾根がします
332:Now_loading...774KB
10/12/17 23:03:26 //4eSqDe
>>325
updateAfterEvent()ってwhileん中じゃ効かないっけ。マウスムーブとかなら使えるんだけど。
333:Now_loading...774KB
10/12/18 05:23:14 w9f1qVqu
>>331
質問文読み返せ
334:Now_loading...774KB
10/12/18 16:49:28 zRdTu8XH
RTMFPのP2P通信でローカルでは
NetGroup.Neighbor.Connectを受け取れて通信しあうことができるのですが
ほかのPCとでは
NetGroup.Connect.Successと出るだけで通信しあうことができません。
ポートやFW関係など、別に設定しないといけないことってあるのでしょうか?
URLリンク(cc.rtmfp.net)で調べると1,4,5番目がNoとなっています。
335:331
10/12/19 02:24:27 OTGlMLlC
>>333
すいません変換おかしかったです。。。
もうちょっと質問を具体的にすると
var timecount:int = 0;
var timer:Timer = new Timer(1,0);
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{
time++;
timecount_disp.text = time.toString() + "ミリ秒";
});
336:331
10/12/19 02:27:59 OTGlMLlC
>>335
途中で投稿してしまいました スイマセン。。
var timecount:int = 0;
var timer:Timer = new Timer(1,0);
timer.addEventListener(TimerEvent.TIMER,function(e:TimerEvent):void{
timecount++;
byousuu.text = timecount.toString() + "ミリ秒";
});
こうしてインスタンス名byousuuという部分のテキストに
ミリ秒単位で表示させようとしてるのですが1秒で100ミリ秒となってしまいます
ちゃんと1秒で1000ミリ秒としたいのですがどうすればいいのでしょうか?
改めてお願いいたします
337:Now_loading...774KB
10/12/19 03:51:35 KGmm612y
AS3.0についての質問です
TextFieldに文字列を代入して表示しているのですが、途中で文字が途切れてしまいます
フォーマットなどはいじらずに“あいうえおかきくけこ”を表示してみると
あいうえおかきくけ
というように途切れてしまいます
表示範囲を変更するにはどうすればいいでしょうか?
338:Now_loading...774KB
10/12/19 06:53:22 KhZKVCl/
>>337
URLリンク(hakuhin.jp)
こことか見なさい
339:Now_loading...774KB
10/12/19 10:53:03 JGcenexZ
AS3で質問です。
DisplayObjectにdrawRectなんかで書いた面を一部分抜く(消去して透明にする)にはどうしたらいいでしょうか。
よろしくお願いします。
340:Now_loading...774KB
10/12/19 14:32:04 KGmm612y
>>338
width と textwidth を混同していました
ありがとうございます
341:Now_loading...774KB
10/12/19 16:45:50 nBfcRgv/
>>339
blendModeで消去とかありそうな
342:Now_loading...774KB
10/12/19 19:10:23 ZNuOu8Xq
as2で質問です。
リンケージしたMCにテキストをつっこんで動かそうと思うのですが
どうも重たいです
テキストをビットマップにすれば軽くなるということなので
ドロップシャドウなどのフィルタをかけたところ若干軽くなったきがしますが、やはり重いです。
他に良い方法はないでしょうか
343:Now_loading...774KB
10/12/19 19:25:47 KtHHAy9T
>>342
それ、テキストがなければ軽いの?
344:Now_loading...774KB
10/12/20 05:05:26 BFNJ7+at
CS4,AS3です
オブジェクトのベタ塗り色の変更はどうすれば良いでしょうか?
△ → ▲ (白の方は枠線はありません[背景は青です])
の感じです。
BitmapDataのfillColorがありますが、オーサリングで描いた図形の色を
単純に変更するだけです。
345:Now_loading...774KB
10/12/20 07:57:39 9X6xSDxR
as3とjavascriptでデータの受け渡しをするにはどうしたらいいのでしょうか?
質問が曖昧すぎるのもあるとおもうので
参考サイト等でもいいのでご教授ください
よろしくお願いいたします