5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ActionScript 誰かが物凄い勢いで解答するスレ29

1 :Now_loading...774KB:2011/06/29(水) 21:17:07.66 ID:0r4aqu6L
AcitonScriptのことなら
初歩的な質問でもなんでもおk

見れない、保存したい、flashを作りたいはスレ違い
下記の関連スレ、超基本的な質問へ。

●質問する時は自分の環境を書く(AS2,AS3の別も)
●質問はものすごい勢いじゃなくて結構
●できるだけコードも示す
●まず自分がやりたいことを明確に書く。そのために試してみた処理を書く

前スレ
ActionScript 誰かが物凄い勢いで解答するスレ28
http://hibari.2ch.net/test/read.cgi/swf/1302831971/

関連スレ
Flashの超基本的な質問はここでしろ! part42
http://hibari.2ch.net/test/read.cgi/swf/1305783143/
※初心者は↑こちら推奨

ActionScript ライブラリ総合
http://hibari.2ch.net/test/read.cgi/swf/1308658905/

719 :Now_loading...774KB:2011/10/20(木) 12:11:10.57 ID:W9CR3IL9
>>718
ありがとうございます。

もう一点質問です、
GPS情報の取得について、ルーターからの擬似GPS情報が
取得できるらしいですが、デスクトップPCの環境では使用できないのでしょうか。あくまでスマートフォンデバイスが対象なんでしょうか。
自分でデスクトップ環境を試したらダメでした。

720 :Now_loading...774KB:2011/10/20(木) 12:43:10.30 ID:t8Bjo5aT
GeolocationのisSupportedみれ
つーかデスクトップは無理

721 :Now_loading...774KB:2011/10/20(木) 23:13:27.54 ID:NLpLAlP0
仕事で、CDから起動するFlashのアプリケーションを作る必要があります。

インストールしなくても動作しなければならないので、AIRは
使えず、プロジェクターの実行ファイルにすることになりました。

プロジェクターにした場合、不要なメニューが表示されるので
これをどうにかしなければなりません。

プロジェクターのメニューを消す方法を教えていただけないでしょうか。

あるいは、プロジェクターの代わりになるFlashのプレイヤーが
あれば教えてください。3万円以下なら有償のものでも
構いません。

よろしくお願いします。





722 :721:2011/10/20(木) 23:32:58.72 ID:NLpLAlP0

投稿した後で、次のような情報を見つけました。
他にも情報がありましたらお教えください。

Flash Player コンテキストメニューのカスタマイズ
http://help.adobe.com/ja_JP/as3/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7f53.html


723 :Now_loading...774KB:2011/10/21(金) 10:06:07.43 ID:WIlg0km8
久しぶりにFlashで制作しようとして、
最新のCS5.5でActionScriptを書こうとしているのですが、
本を読むと、AS3はまだ普及していないから、止めておけみたいな記事が多いのですが、
商業サイトでAS3で制作するのはやめておいた方が良いでしょうか?

Javaに慣れているので、AS3の方が実装としては好きです。
漠然とした質問で申し訳ありませんが、アドバイスをお願いします。

724 :Now_loading...774KB:2011/10/21(金) 12:49:57.45 ID:dUktdNdS
>>723
>本を読むと、AS3はまだ普及していないから、止めておけみたいな記事が多いのですが、
その本の発行時期を確認した方が良い。
明らかに間違い。

新規の案件で顧客要望でもない限りAS2なんかありえん。

725 :Now_loading...774KB:2011/10/21(金) 14:07:13.57 ID:3L+egym9
携帯の客も取り込みたいならAS3なんかありえん


726 :Now_loading...774KB:2011/10/21(金) 14:16:02.97 ID:dUktdNdS
最近携帯でFlashの仕事自体が少ない訳だがw


727 :715:2011/10/21(金) 15:04:49.65 ID:n05WU8Li
FileStreamでの外部SWFファイル読み込みについて報告

結論:無理でしたorz 

ファイルストリームでreadObject();ってメソッドがあったのでいけるかと思いましたが
エンコードなんたらというエラーでだめでした
ByteArrayで読み込んでMovieClipに変換という手も考えて調べましたが
サポートしていないとの事でした ちなみにByteArrayは重い画像だと重宝しそうですな

728 :Now_loading...774KB:2011/10/23(日) 17:44:23.82 ID:vCHJCAfl

FlashBuilder でアプリを開発しています。
FlashBuilderのスライダーはデザインが悪いので
Flashのスライダーを使うよう依頼されています。

Flashでスライダーだけのswfを作り、
それをFlashBuilderに貼り付けて使おうと思っています。

何かもっとよい方法があったら教えてください。
よろしくお願いします。

729 :Now_loading...774KB:2011/10/23(日) 23:27:11.72 ID:wUsWFFVG
シンボルとして作れたら、SWCで書き出して、FlashBuilderからライブラリとして使える。


730 :Now_loading...774KB:2011/10/24(月) 17:39:18.41 ID:2opTluTF
FlashもあるならCatalystもありそうなもんだが。
そっちで作るってのはどうよ。

731 :Now_loading...774KB:2011/10/24(月) 19:38:05.12 ID:14zSZUCs
クラスの設計で相談があります。

例えばある処理の実装を強制する時には
interfaceをimplementsさせますよね。

そんな感じで、例えば、addEventListenerのoverrideを
強制させたいときには、どのようなクラス設計されてますか??

DataGridやTextInputを拡張したクラスを作成する際に
addEventListenerの処理にも少し手を加えるようにしたいのですが
どのように設計すればよいか悩みました。
アドバイスをよろしくお願いいたします。

732 :Now_loading...774KB:2011/10/24(月) 19:54:23.30 ID:yDSGWKJv
インターフェースはそういう使い方しない。ちょっとずれてる。

で、そういうのは他の言語だと抽象クラス(abstractなクラス)を継承する形で実装するけど、
AS3.0にはそういう概念が無い。

じゃどうするかというと、仕方ないから普通の基底クラス作っておいて、そのクラスを継承させ、
イベントハンドラメソッドをオーバーライドする形を取るのがベターってなことになる。
traceで「オーバーライドしてね」って表示するくらいしかできないんじゃないのかな。

ただ冗長すぎるきらいもあるんで、その辺は好きにしてくれって感じかな。

733 :Now_loading...774KB:2011/10/25(火) 00:35:16.38 ID:45aRdEI/
抽象クラスのメソッド呼んだらエラー投げてやれ

734 :731:2011/10/25(火) 10:56:50.30 ID:bOgWFmdq
>>732,733

ありがとうございます。
今回はDataGridなどのクラスを拡張して行なっていきたいのですが、
普通に基底クラスを作ったとした場合、
DataGridを拡張したクラスとはどのように関連付ければいいんでしょうか?

自分の中ではDataGridやTextInputを継承した各クラスで
addEventListenerをオーバーライドしていくという
手間のかかる案しか思い浮かびませんでした。





735 :Now_loading...774KB:2011/10/25(火) 13:35:09.03 ID:OK2Jqx59
>>731
良くやる方法としては、>>732,733が書いているが、
AbstractMyDataGridとかの名前にして、
規約として継承元がAbstractであると明示する方法だとおもう。
で、Abstract側でoverrideを強制するメソッドについて>>733のように
エラーを投げたり、空実装にしたりするのが良いのでは無かろうか。

こんな実装もあるが、直感的でないのでお勧めしない。
http://www.ericfeminella.com/blog/2007/01/16/pseudo-abstract-classes-in-as3/


736 :734:2011/10/25(火) 16:49:36.21 ID:bOgWFmdq
>>735

ありがとうございます。
なるほど。継承元がAbstractであることを
明示する方法ですね。すごく参考になりました。

教えて頂いたサイトも見てみました。
たしかにちょっと直感的ではなくなっているように思いました。

まずは継承元がAbstractであることを明示する方法で
実装してみたいと思います。

ありがとうございました。

737 :Now_loading...774KB:2011/10/25(火) 22:59:07.25 ID:v0xicEqc
ActionScript3.0
フレームのイベント処理(addEventListener( Event.ENTER_FRAME, hogehoge))で
hogehogeが毎回呼ばれたタイミングでマウスの左ボタンがクリックされているかを判定することは可能でしょうか?

738 :Now_loading...774KB:2011/10/26(水) 01:56:50.89 ID:W8qlNTSv
ダウンとアップでフラグたてとき

739 :737:2011/10/26(水) 02:16:46.57 ID:QvOa/x0S
>>738
ムービークリップ内で簡単なラインを書きたいのですが、マスクで一定以上の箇所を書けないようにしています。
マスクの箇所でボタンを話した時に、イベントを取れないので、Event.ENTER_FRAMEのイベントでマウスのボタンが押されていない
ことを取得したかったのですが・・・・・・
マスクの箇所でマウスを離したときに、イベントを取得する方法はあるのでしょうか??

740 :Now_loading...774KB:2011/10/26(水) 04:16:59.20 ID:4/TOld3c
>>739
あるだろう
そもそもイベントを取得できないってのが、おかしい気がするんだが
どういう構造なのかわからんので、なんとも言えない

741 :737:2011/10/26(水) 08:02:55.95 ID:gGtI2OSw
>>740

調べてみたけどダメでした。

var ms:Sprite = new Sprite();
ms.graphics.lineStyle(0,0x0);
ms.graphics.beginFill(0x0000ff);
ms.graphics.drawRect(0,0,this.width,this.height);
ms.graphics.endFill();
addChild(ms);
this.mask = ms;

これで、キャンバス(this)以外は書けないようにしてますが、
キャンバス意外でマウスを話すと、MouseEvent.MOUSE_UPが呼ばれません・・・・・

742 :Now_loading...774KB:2011/10/26(水) 10:07:09.15 ID:W8qlNTSv
MOUSE_UPだけstageにaddEventListenerしとき

743 :Now_loading...774KB:2011/10/26(水) 13:44:14.10 ID:PYqN1TPX
FlashBuilderでCaptiveRuntimeでコンパイルするのにadtコマンドでbundleする。
と見たのですが、何をどうして良いのやら皆目わかりません。
ヒントをください、、。

744 :Now_loading...774KB:2011/10/27(木) 00:23:51.53 ID:RoUC1OLJ
>>743
AIRスレで聞いてくれ

745 :737:2011/10/27(木) 08:16:04.48 ID:HwV7kiTO
>>742
返信ありがとうございます。
ダメでした。 メインのステージでMOUSE_UPを登録してみましたけど、なぜか呼ばれませんでした。
maskを削除すれば呼ばれます。 

746 :Now_loading...774KB:2011/10/27(木) 17:55:03.19 ID:Ki8AwMGU
>>744
わかりましたすいません。

747 :Now_loading...774KB:2011/10/28(金) 01:54:41.06 ID:9YQKLPN/
>>745
んー
stageのMOUSE_UPが呼ばれないはずないとおもうんだけどなあ・・・

748 :Now_loading...774KB:2011/10/28(金) 02:15:51.72 ID:7LQoAwDQ
>>745
たしかに、その状況はおかしい
リスナー登録とmask周りのASはどうなってんの?
いっそflaあげちゃえば?

749 :737:2011/10/29(土) 07:53:07.42 ID:fIrbNzIq
>>747 748
返信ありがとうございます。
勘違いしていまいた。 メインのフレームがstageだと思っていました。
ムービークリップを表示させてるメインフレームで
this.addEventListener( MouseEvent.MOUSE_UP, hogehoge );は呼ばれませんでしたが
stage.addEventListener( MouseEvent.MOUSE_UP, hogehoge );でよばれました。



750 :Now_loading...774KB:2011/10/31(月) 21:41:33.75 ID:aRjO9dmx
すいません、動画初心者です。
Flashc S3でWINです。

flaで作ったアニメーションを、
FLVで納品しなければいけないのですが
AS3も使っています。

この場合どうやって書き出せばいいのでしょうか。。?
探してもやり方が見つからず。。

ご存知の方いらっしゃいましたら
よろしくお願いいたします。。

751 :Now_loading...774KB:2011/10/31(月) 21:47:23.91 ID:0cyw4EV2
そんなもん無理に決まってんじゃん。
自前で連番PNGにでも書き出すAIRアプリでも作ってみたら?
どういう内容かわからんから自分で調整するしかないけど。

752 :Now_loading...774KB:2011/10/31(月) 22:09:16.84 ID:2WMBKEVe
「Flash flv 書き出し」でググったらそれらしい情報あったけど・・・?

753 :Now_loading...774KB:2011/11/01(火) 00:32:29.79 ID:h8RkYCKt
>>750
マルチ乙

754 :Now_loading...774KB:2011/11/01(火) 01:25:59.01 ID:HXRhL4WF
やはり無理ですか。。
結構需要ありそうなんですが
できないものなんですね。。

直接じゃなくてもいいんですが。。
swfで書き出したのをデスクトップで流して
それをキャプチャするとかしかないのか。。

こことか
http://blog.alt-scape.com/archives/284#

755 :Now_loading...774KB:2011/11/01(火) 01:42:44.91 ID:nL9sYKEB
クリックしたら動くとかしこんであるようなやつをどうやったら動画に出来ると思うんだ???

756 :Now_loading...774KB:2011/11/01(火) 09:11:47.51 ID:u6Slxspq
mov書き出しなら出来るんだから、変換したら?

757 :Now_loading...774KB:2011/11/01(火) 12:02:10.73 ID:1+uCTXWi
FlashBuilderを使用して開発しています。
ロジックとビューを分離する場合について質問させて下さい。

画面はMXMLで作成し、ロジックの部分は
IMXMLObjectを実装したクラスを作成しています。

ある画面ではポップアップウインドウを表示する処理を
行なっています。
ポップアップウインドウには親画面から値を渡す処理もしています。
その場合、分離の観点から言うと、MXMLの中にスクリプトを書くのは
あまりよろしくないとは思っていますが
子画面のMXMLにScriptタグを書いてその中に
setter getterを書き、それらを経由して値のやり取りをしています。

皆さんはロジックとビューを分離したときに、
画面に値を渡したい場合はどのようにされてますか?
バインディングとか、同一セッション間で値を持ち回れる
コンテナを作成するとか考えてはいるのですが・・・。

ご意見いただけると幸いです。

758 :Now_loading...774KB:2011/11/02(水) 20:05:57.26 ID:SCW8Xk+T
flex4.5ですが、データプロバイダはメモリ空間のポインタを管理していると思いますが、
list.dataProvider.getItemAt(index)で得られるポインタは、そのデータプロバイダで管理されているポインタそのものなのか、
そのポインタへのポインタなのかどちらでしょうか?

と言いますのは、渡されたポインタをデータプロバイダにaddItemAtで新しいインデックス位置に追加したのですが、
addItemAtした方の内容を編集した時に、getItemAtされた方の表示は変わらないのに、
getItemAtされた方を編集すると、
addItemAtした方の表示が変わるからです。
なぜかなと思いました。バカでしょうが重要だと思うので教えて下さい。

759 :Now_loading...774KB:2011/11/04(金) 22:19:16.83 ID:6ahcyGLb
外部テキスト読み込みで、UTF8は大丈夫なんですが
UTF8Nを読み込むとエラー出るのは仕様なんでしょうか?
中国語テキストがUTF8Nじゃないと表示されないみたいでして困っております。。

760 :Now_loading...774KB:2011/11/06(日) 16:16:54.07 ID:jN3+5Sl2
>>759

UTF8Nの読みこみもわかるけど
それはそうとさ、

スペックの高いモテ男にとって
家でエロゲやるより、
この現実がすでにエロエロゲだよな。

気に入った子見つけて口説けば
エッチできる。
部屋にお持ち帰りしてしまえば
どんないやらしいことでもできる。

そいつにとって
この現実こそがエロすぎる最高のエロゲー。

考えただけでも勃起してくるぜ。

761 :Now_loading...774KB:2011/11/08(火) 07:12:04.47 ID:w97NSK6E
CS4のXPでAS3ですが、ラジオボタン(RadioButton)の初期選択が
思う通りに設定できません。

タイムラインのフレームアクションで radioB2.selected = true; とかで設定
できるはずですが、ラジオボタン自体は出るものの無選択のままです。
また、イベントを発生させて無理やり radioB2.selected = true; としても駄目でした。

どうすべきでしょうか?



762 :761:2011/11/08(火) 07:23:08.46 ID:w97NSK6E
すいません。自己解決しました。
4個のボタンを2個づつグループ分けし忘れていました。


763 :Now_loading...774KB:2011/11/08(火) 15:59:29.49 ID:EznP+LZe
AS1.0です。講座サイトを見ていると
if(hoge){}という分岐を見かけます。
== 0や== trueを入れるであろう部分が省略されているんですが
これはどういう意味になんですか?

764 :Now_loading...774KB:2011/11/08(火) 16:25:03.30 ID:21Bjzs6g
Boolean型の比較ということだ hogeの中身がtrue かfalseか判定
if ( hoge ){ 中身がtrueなら以下の処理を実行
if ( !hoge ){ 中身がfalseなら〜 

765 :Now_loading...774KB:2011/11/08(火) 16:32:03.86 ID:21Bjzs6g
ああ 単純に==tureを省略してるって事
ASなら他の型でも省略できるみたいだな
if ( hoge ){//int型なら0以外なら以下の処理を〜
if ( hoge ){//String型ならnull、""(何も無し)以外なら以下の〜

766 :Now_loading...774KB:2011/11/08(火) 16:33:36.29 ID:EznP+LZe
>>764-765
こんな便利な方法があったんですね
ありがとうございます

767 :Now_loading...774KB:2011/11/08(火) 16:46:32.64 ID:21Bjzs6g
失礼 AS1、2ならnullじゃなくてundefinedって扱いだ

768 :Now_loading...774KB:2011/11/08(火) 17:26:17.45 ID:EznP+LZe
たびたびすみません、AS1.0の質問です。
moveTo();lineTo();で描画した直線の深度が一番奥になってしまうんですが
深度を変えるにはどうすればいいんでしょうか?
ツールはparaflaを使っていてスクリプトは下のように記述しています。

Edit = false;
onMouseDown = function (){
_root.xstart = _root._xmouse; _root.ystart = _root._ymouse; Edit = true;
};
onMouseMove = function(){
if(Edit){
clear(); lineStyle(1,0xFFFFFF,100);
moveTo(_root.xstart, _root.ystart);
lineTo(_root._xmouse, _root._ymouse);
}};

769 :Now_loading...774KB:2011/11/08(火) 18:11:25.81 ID:B13Hnqdd
>>757
なんかここの話題とはちょっと違うような気もするが。
FxUGとかで聞いた方が間違い無いと思う。ここはFlexの話題がメインじゃないし。

IMXMLObject#initialize(document:Object,id:String)
で元のObjectが取れるんだから、プロパティとかScriptタグで定義しなくても良いと思うんだが。
自クラスで使うには、initializeを上書きして、documentを自前で保持しておく必要はあると思うが。

MXML側(ビュー側)にロジッククラスを書き込んでやって、
<fx:Declarations>
<hoge:HelloWorldLogic id="hello"/>
</fx:Declarations>

ロジック側ASでは
[Bindable]
public class HelloWorldLogic implements IMXMLObject{
...

ってやってやれば、動的にバインドしてくれる。

770 :768:2011/11/08(火) 19:24:02.78 ID:EznP+LZe
すみません自己解決しました
空のムービークリップを作って指定したら直りました

771 :Now_loading...774KB:2011/11/08(火) 20:31:57.34 ID:o+aPH1bP
どなたかご存知の方がいたら教えていただきたいんですが、
Flash(AS2ですが)で外部画像やムービーを呼び出すときは
loadMovieで外部画像やムービーを読み込むと思うけど、その画像ファイルや
ムービーファイルをサーバに設置するとき、ファイル名を含んだURLを
打たれても見られないようにするにはどうしてますか?

ディレクトリのパーミッションを644にして画像は755(705とか)にしてますか?
画像も644(600?)で読み込めるんでしょうか。

772 :Now_loading...774KB:2011/11/08(火) 22:26:30.71 ID:21Bjzs6g
実際にサーバにうpって試してみるんだw
結果の報告待ってるよ〜

773 :Now_loading...774KB:2011/11/08(火) 23:00:34.93 ID:o+aPH1bP
了解です。しばし結果はお待ちください。

774 :Now_loading...774KB:2011/11/09(水) 03:07:17.38 ID:ftaSXIAf
AS2で作業をしております。
サウンド再生で行き詰まっていることがあって質問させて頂きます。

ムービークリップ内のサウンドオブジェクトを再生する際、
_rootから変数を使って(=変数名で)指定したいのですが、再生出来なくて悩んでおります。

bgm_mc…サウンドを収容しているmc。 このmc内でサウンドオブジェクトを作成するASを記入している。
oto   …サウンドオブジェクト名。
hensu …指定用変数

と仮定して、
 _root.hensu = "oto";           // 変数に再生したい音を振り分け
 _root.bgm_mc.hensu.start();  //  再生

のように書いているのですが再生出来ません。 「_root」の所を削除したり、「_global」で変数で代入して
階層を省略したり、MC内から変数を参照して再生するASを書いてみたりと色々と試して2週間が過ぎてしまいました。
変数を使用せずに直接サウンドオブジェクトを指定すれば、再生されます。

どうかご指導お願い致します。

775 :Now_loading...774KB:2011/11/09(水) 07:11:10.99 ID:yE3VRrDE
なんか妙にAS1.0と2.0の質問が多いな。
卒業制作で困ってるのか?



776 :Now_loading...774KB:2011/11/09(水) 12:07:54.58 ID:NAxBptib
気になるのはuがuみたいに日本語で打ったように見えるところなんだけど

777 :Now_loading...774KB:2011/11/09(水) 14:48:28.14 ID:2MWHYFMD
ホントだwよく気がついたなwwww

778 :Now_loading...774KB:2011/11/09(水) 17:02:00.95 ID:ftaSXIAf
>>774です。
uの全角は、手打ち変換していて間違えました。すみません
実際の変数名は「hensu」ではないので、大文字が原因ということでは
ないと思います。

779 :Now_loading...774KB:2011/11/09(水) 20:02:02.37 ID:VoiHAyMc
_root.bgm_mc[_root.hensu].start();

こうじゃね?

780 :Now_loading...774KB:2011/11/09(水) 21:11:21.49 ID:ftaSXIAf
>>779
鳴りました!本当にありがとうございます。

[]の前にピリオドが付かないんですね。 かなり近い所で何度も書きまくっていたけれども
多分これは気づくことが出来なかったと思います。
ようやく作業が前に進めます。 ありがとうございました。


781 :Now_loading...774KB:2011/11/10(木) 04:55:28.43 ID:Vkb6/ool
困っています。AS2なんですが、サーバにアップしたときに、
loadMovieで以下のようなディレクトリ構造で画像ファイルを
呼び出そうとしているのですが、画像ファイルのフォルダに
.htaccessがあって、それが画像を呼び出すのを邪魔しています。

[testprogram] --[gazoo]--gazoo.jpg
| |-.htaccess
|-[program]--load.swf
|-load.html(swfを埋め込んである)

.htaccessの記述

SetEnvIf Referer "^http://www\.testprogram\.com/program/load\.php" ref_ok
order deny,allow
deny from all
allow from env=ref_ok

.htaccessをはずすと画像を読み出すのですが、直リンクやブラウザからの
画像の呼び出しを許してしまいます。どの辺が悪いか何かお気づき
できしたら、ご教示ください。なお、リファラは
http://www.testprogram.com/program/load.php
と出てきています。よろしくお願いします。

782 :Now_loading...774KB:2011/11/10(木) 04:58:44.65 ID:Vkb6/ool
ディレクトリがずれてしまってますが、二行目以下は
一段、階層を下げてずらしてください。[gazoo]の中に
画像ファイルとにっくき.htaccessがあります。

783 :Now_loading...774KB:2011/11/10(木) 17:02:39.71 ID:zRfCwqqf
AS1.0の配列についての質問です。
お客さんの好みの食べ物を与えてスコアを稼ぐゲームを作っていて
配列で下のように設定しています。

// 配列の宣言
food = new Array(); type = new Array();
food[0] = new Array(); food[1] = new Array(); food[2] = new Array();
type[0] = new Array(); type[1] = new Array(); type[2] = new Array(); type[3] = new Array();

// 【食べ物の設定】(温かい,冷たい,甘い,辛い,酸っぱい)
food[0] = [0,0,1,0,1]; // オレンジ。甘くて酸っぱい
food[1] = [1,0,0,1,0]; // カレーライス。温かくて辛い
food[2] = [0,1,1,0,0]; // アイスクリーム。冷たくて甘い

// 【お客さんの好みの設定】(温かい,冷たい,甘い,辛い,酸っぱい)
type[0] = [1,1,1,1,1]; // 太郎さん。特に好きなものも嫌いなものもない(点数1倍)
type[1] = [1,1,1,1,0]; // 次郎さん。酸っぱいものは嫌い(点数0倍)
type[2] = [1,1,2,1,1]; // 三郎さん。甘いものが好き(点数2倍)
type[3] = [0,0,0,0,3]; // 四郎さん。酸っぱいものが大好き(点数3倍)他のものは嫌い(点数0倍)

// 【食べ物を与えた時の処理】
score = 100;
↑ここで食べ物の味と客の好みを比較して
・四郎さんに甘くて酸っぱいオレンジを与えると100 * 0 * 3 で0点
・三郎さんに冷たくて甘いアイスクリームを与えると100 * 2 * 1 で200点
といったような感じでscoreを補正させたいのですがどうすればいいんでしょうか?

784 :Now_loading...774KB:2011/11/10(木) 17:32:40.16 ID:Vkb6/ool
二次元配列になっているのが問題では・・・
そもそもintegerを足したり引いたりするんじゃないなら、
ルールをcaseで羅列すればいいので、配列にする必要もないのでは・・・

785 :783:2011/11/10(木) 18:11:46.19 ID:zRfCwqqf
配列なら要素が増えてもtype[who][hoge]みたいな指定ができて楽なのかなと思ってました
他の方法でももちろん構いません
caseは使ったことがなくてif分岐との違いがよくわからないのですが
この場合どのように記述するのがベストなんでしょうか?

786 :Now_loading...774KB:2011/11/10(木) 20:05:21.22 ID:8bDmVW2+
おれは>>783の方針は間違っていないと思うなぁ。
変数名がわかりにくい気がするけど。
foodはintにして、food=1がオレンジとかのほうが直感的だとおもう。
で、今のfoodをtasteに変更するとか。typeももっとどうにか・・・。

まぁ>>783の宣言のままとるすと、
var foodIndex = 0 // オレンジ
var guest = 2 // 三郎

for(i=1,i<5,i++) {
 if( food[foodIndex][i] == 1 ) {
  score = score * type[guest][i];
 }
}

動かしてないけど、こんな方針でよくない?


787 :Now_loading...774KB:2011/11/11(金) 00:06:13.06 ID:JgQJhBwU
AS1.0よう知らんけど、その手の処理ならマスク方式ってのもありかもね。行数の関係で見にくくてすまん。

var baseScore=100, s=2, m=3;//0〜3の値らしいので2ビット確保 mask値:11=3

//好み&判定用マスク作成ヘルパ関数
function getKonomi(hot,cold, sweet,spicy, sour){
return hot | cold<<s | sweet<<s*2 | spicy<<s*3 | sour <<s*4;
}
//スコア計算関数
function getScore(kyaku, food){
var v = kyaku & food; //マスク使って被ってるところだけ取り出す
var score = 0;
for(i=0;i<5;i++)score += (v & m<<i*s)>>i*s;
return score * baseScore;
}
//個人の好み作成
taro = getKonomi(1,1,1,1,1);
jiro = getKonomi(1,1,1,1,0);
sabu = getKonomi(1,1,2,1,1);
siro = getKonomi(0,0,0,0,3);
//判定用マスク作成
food1 = getKonomi(0,0,m,0,m);
food2 = getKonomi(m,0,m,0,0);
food3 = getKonomi(0,m,m,0,0);
//けいさん
trace(getScore(taro,food1));
trace(getScore(jiro,food1));
trace(getScore(sabu,food3));

788 :Now_loading...774KB:2011/11/11(金) 13:54:55.69 ID:RInyJMZ1
ビット演算を理解してないと難しすぎるかもな
途中の計算も2進数で確認できないとデバッグも改造もできんw

789 :Now_loading...774KB:2011/11/11(金) 14:19:10.14 ID:lJpUg5Uu
n進数表示だったら普通にtoStringで見られるよ。AS1.0はどうかしらんけど。

var num = 3;
trace(num.toString(2)); // 11

逆ならparseInt。

num = parseInt("0101010101",2);
trace(num);
trace(num.toString(2));
trace(("0000000000" + num.toString(2)).substr(-10)); //10文字でゼロパディングする場合こんな感じ

790 :Now_loading...774KB:2011/11/11(金) 17:08:59.20 ID:UEUmK//1
>>786-788
できました!ありがとうございます
ビット演算はとても便利そうなので勉強してみます

791 :Now_loading...774KB:2011/11/12(土) 01:26:59.18 ID:MOeK6lCa
3.0以外はビット演算速いわけじゃないけどね

792 :Now_loading...774KB:2011/11/12(土) 10:59:54.63 ID:jjv1VzKt
ビット演算ってメンテナンスが難しいし
仕様が途中で変わるような物には利用しない方がいい。
自分しか触らないような物であればそういう問題はクリアされるだろうが。

793 :Now_loading...774KB:2011/11/12(土) 16:40:26.38 ID:1R4BnCXm
as3.0で質問です。

以下のように生成した配列型のムービークリップがダブルクリックを受け付けません。
原因を教えていただけないでしょうか。

//****************************************
//ライブラリ登録してリンケージでクラス設定した画像"jpg_file"の一部を
//動的生成した"max"数のムービークリップの画像にはめ込んで配置する。
//****************************************
//配列インスタンスの設定
var unitArray:Array = new Array();

//インスタンスの生成と配置
for (i = 0; i < max; i++)
{
// ムービークリップ作成
var unit:MovieClip = new MovieClip();
//画像のクリッピング設定;
var myBitmapTiling:BitmapTiling = new BitmapTiling(unit,0,0,100,100,"jpg_file");
//配列インスタンスへの設定
unitArray.push(unit);
//配列インスタンスを配置;
stage1.stage2.addChild(unitArray[i]);
}

794 :Now_loading...774KB:2011/11/12(土) 16:41:00.21 ID:1R4BnCXm
(続き)
ちなみに、ダブルクリックのイベントを割り当てのコードは次のとおりです。

//****************************************
//ダブルクリック
//****************************************
unitArray[0].doubleClickEnabled = true;
unitArray[0].addEventListener( MouseEvent.DOUBLE_CLICK,dClick_func );
function dClick_func(event:MouseEvent):void
{
trace("d_click");
}
※仮に[0]のみ処理対象にしています。

これで、unitArray[0]に該当するムービークリップをダブルクリックしても何の反応もありません。
ちなみに、unitArray[0]を、ステージ上に配置してあるムービークリップ"stage_mc"と置き換えると、stage_mcに該当するムービークリップは正常にダブルクリップを受け付け、「d_click」という文字を出力します。
配列として生成されたムービークリップは何か問題があるのでしょうか。ただ、unitArray[0]はドラッグ操作は受け付けていてダブルクリックだけ受け付けないのです。
よろしくお願いします。

795 :Now_loading...774KB:2011/11/12(土) 16:49:29.18 ID:s/W2vo24
AS3のXPでCS4
オブジェクトの回転で困ってます。ステージ上に置いたオブジェクト(mc0)をある操作で
mc0.rotation += 0.5; で回転させようとしています。

対象オブジェクトがステージ中央(stage.stageWidth/2, stage.stageHeight/2)にあれば
良いのですが、オブジェクトをマウスドラッグで中央から移動させて回転操作を起こすと
自身の回転と同時にステージ中央周りでも回転します。

つまり惑星の公転と自転のような感じで動いてしまします。
どう対処すれば良いでしょうか?


796 :795:2011/11/12(土) 17:13:30.97 ID:s/W2vo24
(上の訂正)
※マウスドラッグで移動させてると自転せず公転のみです。

---再質問----
AS3のXPでCS4(Player10)
オブジェクトの回転で困ってます。ステージ上に置いたオブジェクト(mc0)をある操作で
mc0.rotation += 0.5; で回転させようとしています。

対象オブジェクトがステージ中央(stage.stageWidth/2, stage.stageHeight/2)にあれば
良いのですが、オブジェクトをマウスドラッグで中央から移動させて回転操作を起こすと
ステージ中央周りでも回転し、惑星の公転のようになります。

つまり基準点がステージ中央のままこの周りを回転してしまいます。
どう対処すれば良いでしょうか?


797 :795&796:2011/11/12(土) 17:39:34.68 ID:s/W2vo24
すいません自己解決しました。
実際はmc0の子をドラッグしていました。


798 :Now_loading...774KB:2011/11/12(土) 18:31:08.85 ID:bCF10ONX
>>794
とりあえず、
trace(event.target);
trace(event.currentTarget);
してみたら?

799 :793:2011/11/12(土) 19:17:38.99 ID:1R4BnCXm
>>798
traceダメみたいです。
そもそもダブルクリックの指定関数"dClick_func"を呼び出してないみたいです。

800 :Now_loading...774KB:2011/11/12(土) 19:32:48.01 ID:Sn3q2JF+
>>799
BitmapTiling クラスが邪魔してるってことはない?

801 :Now_loading...774KB:2011/11/12(土) 19:44:37.86 ID:kXmtzbsM
BitmapTilingクラスってのが、ググると出てくるBitmapTilingクラスなら
Bitmap描いたSpriteをaddChildしてるみたいだから、>>800で当たりかな

802 :Now_loading...774KB:2011/11/12(土) 20:57:17.82 ID:f70pOoj3
WinXP-ProでFlashCS4(AS3)使用ですが、3D操作後に入れ子のMCがマウスドラッグ
出来なくなって困ってます。

設定) 親mc0の中に子mc1があり、子は親の中でマウスドラッグ移動が出来る

症状) 親mc0を3D回転、例えば mc0.rotationX = 30; などととすると子がドラッグ移動
    出来なくなり、mc0.rotationX = 0 で元に戻しても改善されない。

補足) 子mc1はマウスイベントのMouseEvent.ROLL_OVERは感知出来る。従来の
   平面内の回転 mc0.rotation = 30 とかでは普通にドラッグ移動できる。

対処のヒントはありますでしょうか?


803 :793:2011/11/12(土) 21:56:22.58 ID:1R4BnCXm
>>801
なるほど。
BitmapTilingクラスの代わりってないものですか?
動的に生成したムービークリップに、
1枚のビットマップの一部を貼り付けたくてBitmapTilingクラスを使ったのですが、
同じ効果でダブルクリックを受け付けてくれる方法がありましたらご伝授ください。

804 :Now_loading...774KB:2011/11/12(土) 22:03:05.45 ID:kXmtzbsM
BitmapTilingクラスがコンストラクタでやってる事を、直接生成したMCに対してやればいいんでないの?
見たところ、Spriteを新規に作ってBitmapDataをbeginBitmapFillで描いた後にaddChildしてるから
MCに直接BitmapDataを描いてやればいいと思うんだけど

805 :793:2011/11/12(土) 23:22:02.52 ID:1R4BnCXm
>>801
>>804
ご指摘の方法で試したところ解決しました!
ありがとうございました!

806 :802:2011/11/13(日) 00:39:27.38 ID:dnVwXFOB
(追記)
SWFをUpしました。http://loda.jp/swfsuksuki/?id=117
※リンク用URLの下にあるDOWNLOADボタンを押して下さい。

オレンジ色の円がマウスドラッグ対象(mc1)です。
最初rotationX = 0ですが、右上のNumericStepperで緑色の背景(mc0)を
X軸回転の0〜100度で変更できます。
左上のText欄はマウスイベントの状態です。



807 :Now_loading...774KB:2011/11/13(日) 21:05:58.15 ID:Sm6R+E75
タッチした瞬間にイベントが発生する様に
<s:List id="nanntara" x="10" y="66" width="148" height="531"
change="nanntara_buttonDown()" fontSize="27" textAlign="kanntara">
で起きたタッチを
protected function nanntara_buttonDown():void
で受け止めたのですが、やはり手を離した時まで反応しません。
何か他にタッチしただけで発生するイベントがあるのでしょうか?

808 :Now_loading...774KB:2011/11/14(月) 00:27:14.01 ID:WwZtEoaa
>>807
アホかwww
change→mouseDownに変えればおk

809 :Now_loading...774KB:2011/11/14(月) 01:05:24.12 ID:mTN9cZQc
>>808
ちょっとまだ意味は分かってないですがちゃんとなりましたありがとう!

810 :Now_loading...774KB:2011/11/14(月) 13:29:21.66 ID:bC/k1JMn
えーと Flash\(^o^)/オワタということですか??

【企業】 「モバイル向けFlashの開発中止は、アップルの拒絶が主因」…Adobe幹部
http://uni.2ch.net/test/read.cgi/newsplus/1321243538/

811 :Now_loading...774KB:2011/11/14(月) 17:14:31.36 ID:7Swu1oyH
オワタもなにもモバイル、というかスマホ版Flash Playerは始まってもいなかった

812 :Now_loading...774KB:2011/11/14(月) 23:56:27.35 ID:kSaT2GVU
まぁモバイルやめるってことは、必然的にPC向けも、どっちもに対応できるHTML5に移ってくよね
IE8使えないXPがどうなるかだなぁー。いちいちChromeとか入れる人の方が少ないだろうし

813 :802&806:2011/11/14(月) 23:56:35.40 ID:A8ox6AKc
すいません。どなたか分かりますか?
3D操作中はドラッグ移動出来ないのは納得しますが、元の平面(rotationX = 0)に
戻ったら移動を再開させたいのです。


814 :Now_loading...774KB:2011/11/15(火) 00:18:46.44 ID:GWph1+Zm
>>813
俺もちょっとやってみたら、startDragとstopDragじゃできなかったから
ENTER_FRAME使って移動させてみたら3D変形させてもドラッグ(風の)操作できたわ

815 :802&806:2011/11/15(火) 02:27:07.93 ID:FLc0c1Xq
>>814
さんきゅうです。ENTER_FRAMEと
mc1.x = mouseX;
mc1.y = mouseY;
でマウス位置に追従させてOKでした。


816 :Now_loading...774KB:2011/11/15(火) 19:10:57.25 ID:TwZasM9N
任意のオブジェクトにaddEventListenerで
追加したイベントのリストを取得する方法はありますか?




817 :Now_loading...774KB:2011/11/16(水) 02:27:49.75 ID:xAYiBmm1
>>810
そこ読んだら嫌われ方が尋常じゃない。。。
やばくね?

818 :Now_loading...774KB:2011/11/16(水) 06:33:09.72 ID:0ETIs1d1
>>817
フォトショとかプロが使うソフトが高くて買えない人間と、
低スペでFlashのページをまともに表示できない人間が文句言ってるだけにしか見えんw
つまり貧乏人が吼えてるだけかとw
AllFlashサイトへの批判は、Adobeじゃなくサイト側に向かうべきだし、
アップデートが多いってのも、ChromeやFirefoxでもしょっちゅやってるし、
自分の気に入らないことを挙げ連ねてるだけじゃね?

315 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)