ActionScript 誰かが物凄い勢いで解答するスレ 26 >>951 その解釈はおかしい。
動けばOKであればそれでいいけど。
>var keisanki:MovieClip = new Keisanki();
keisankiはMovieClipとして、宣言してあって、
MovieClipには、kekkaと言うプロパティは無いから
>1119: 未定義である可能性が高いプロパティ kekka に静的型 flash.display:DisplayObject の参照を使用してアクセスしています。
このようなエラーが出ている。
>stage.kekka = display.text; stageにkekkaというプロパティがないって言われてるんじゃないのか kakkaそのままとかthis.kekkaでアクセスすればいいと思うけど
>>950 Mainクラスにある
public var kekka:String; を
public static var kekka:String; にすれば
Main.kekkaでアクセスできると思うけど。
そもそもMainクラスにあるプロパティにどうしてstage.kekkaでアクセス
できると思ったのかが意味不明。
>>953 外部クラスからのアクセスなんだからthisじゃ参照できないよ。
955 :
943 :2010/10/19(火) 16:12:31 ID:p/nbz0wI
>>948 ありがとうございます!
ああ、やっぱりそうなりますか……。
removeChildだけでいけたら
ソースが綺麗になるなと思っていたのですが……。
ものすごく初歩的なことだと思うのですが CS5体験版を入れてActionScript3.0 クラスというのを選んで起動したのですが これを実行するにはどうすれば良いのでしょうか メニューのデバッグには「ムービーをデバッグ」とかいうのしかないし デバッグコンソールの▼みたいなボタンは無効だし もしかして、.flaのプロジェクトじゃないと実行は無理ですか? コード package { public class Main { public function Main() {trace("hello world"); } } }
956ですが自己解決。flaとセットじゃないとダメってことですね
FlashCS4(AS3,Player10)WinXP-ProでXMLの扱いを勉強していますが、名前空間(Namespace)を
使った要素の値参照で困っています。 ※下は使用したXMLです(すいません全部記載します)
var klmObj:XML = <topNS:kml xmlns:topNS="
http://com/kml/2.2 ">
<?xml version="1.0" encoding="UTF-8"?>
<topNS:Document xmlns:docNS="
http://com/kml/docNS ">
<docNS:Placemark placeNS:idx="0" xmlns:placeNS="
http://com/kml/placeNS0 ">
<placeNS:name>名前0</placeNS:name>
<placeNS:description>詳細1</placeNS:description>
<placeNS:Point sub="0123">
<coordinates>118.169172,30.0547,436.3</coordinates>
</placeNS:Point>
</docNS:Placemark>
<docNS:Placemark placeNS:idx="1" xmlns:placeNS="
http://com/kml/placeNS1 ">
<placeNS:name>名前1</placeNS:name>
<placeNS:description>詳細1</placeNS:description>
<placeNS:Point sub="1234">
<coordinates>118.169172,30.054,436.3</coordinates>
</placeNS:Point>
</docNS:Placemark>
</topNS:Document>
</topNS:kml>;
ここで、var placeNS:Namespace = klmObj..docNS::Placemark[0].namespace("placeNS");
とすれば(上から辿る形にすれば)、下の2つはOKです。
trace("idx= "+klmObj..@placeNS::idx);// 0 が出る
trace("name= "+klmObj..placeNS::name);// 名前0 が出る
しかし、要素の値を名前空間を直接指定して参照しようとしましたが何も出ません。つまり、
var placeNS_:Namespace = new Namespace("placeNS", "
http://com/kml/placeNS0 ");
trace("name_= "+klmObj..placeNS_::name);// 何も出ない
このように、上から辿る形でなく直接参照することは不可なのでしょうか?
959 :
Now_loading...774KB :2010/10/20(水) 15:24:30 ID:FmGF/v3R
mc.constructorを使ってmcを動的生成した時に、 mc2.txt=""みたいな感じで動的生成したmcの中身にアクセスすると "未定義"のエラーがでます。 フレームを変えてアクセスするとうまくいくのですが、同じフレームで対処する方法はありますか?
AS2のやりかただっけ?
961 :
Now_loading...774KB :2010/10/20(水) 15:43:59 ID:FmGF/v3R
すいません、AC3です
AC3 アーマークラス 3ということは、まだ装備がそろってないって事か。 AS3では、constructorの返値ってClassじゃないっけ。 フレーム変わるとアクセスできるのが不思議な感じがするが、 ダイナミックプロパティなんだろうか?
963 :
light :2010/10/20(水) 17:15:53 ID:iQJlb5m5
いまFlash CS4 ゲーム制作教科書という本で神経衰弱のゲームを作成しているのですがエラーが出てしまい進まなくなっています。解決策を教えてください。 エラーが出る文章は↓ addEventListener(MouseEvent.CLICK,Change_Card); function Change_Card(event:MouseEvent):void{ var click_Name:String = parent.name; //trase ( "click_Name= " +click_Name); Object(root).click_Card( click_Name); Object(root).gotoAndPlay("omote"); //Object(parent) } でムービーに変換して実行すると TypeError: Error #1006: click_Card は関数ではありません。 at _fla::Back_Card0_2/Change_Card() と出てしまいます。 どこがエラーになってる原因なのでしょうか…?
test
>>958 XMLに特に詳しくもないんで的外れだったらゴメンだけど、
>var placeNS_:Namespace = new Namespace("placeNS", "
http://com/kml/placeNS0 ");
これって新たに別のNamespaceオブジェクト作ってるだけであって、klmObjとは全く関係ないオブジェクトじゃないの?
ここからklmObjの情報が取れるとはちょっと思えないんだが
966 :
Now_loading...774KB :2010/10/21(木) 08:02:57 ID:U/xnH6ZN
AS3、FlashDevelopで開発中の者です。 マスクについて質問をさせてください。 一方がマスクとなってもう一方を切り取りとるような、2つのオブジェクトがある場合、 その2つのオブジェクトに対して、更にマスクをかける方法はあるでしょうか? 具体的な話をすると、 文字の形の図形の色をFlash上で変更できるようなシステムを作っていて、 colorChar → Sprite型から継承したクラスのオブジェクト。 charMask → colorChar内、Loader型のオブジェクト。文字の形の画像をcolorFieldのマスクにする。 colorField → colorChar内、Sprite型のオブジェクト。色のついた面。この図形の色を変えることで、文字の色が変わる というような形で実装しています。 その色のついた文字をいくつか使って、枠の中に配置していこうとしています。 枠というのはSprite型で作った長方形で、そこと重なっている部分だけ、 文字を表示したいのです。 そこでマスクをかけようとしたのですが、上手くいきませんでした。 マスクとして使用されているcharMaskや、 すでにマスクをかけられているcolorFieldにマスクをかけられないのは 想定通りでしたが、 その2つを内包するcolorCharにもマスクがかけられませんでした。 そういうものなのでしょうか? 何らかの解決方法をご存知の方、よろしくお願いします。
AS2.0で ドラッグできるMCの上に 何もできないMCを重ねて隠してるのですが 下に隠してあるMCをドラッグできてしまいます。 ドラッグできなくするにはどうしたらよいでしょうか。
>>296 やり方違うけど、BitmapAssetでPNG画像読み込んで、
PNGの透過部分で画像をマスクしたときは、4枚ぐらい重ねたけど問題なく出来た。
970 :
967 :2010/10/21(木) 17:48:37 ID:ZGN/4HED
ありがとうやってみます。 対象がいっぱいあるので 一段階別のMCに入れた方がよさそうですね。
972 :
967 :2010/10/21(木) 18:50:03 ID:ZGN/4HED
enabledでできましたが 空MC ├ ドラッグできるMC1 ├ ドラッグできるMC2 ├ ドラッグできるMC3 にして 空MC.enabled=false; で 1〜3も使えなくなるようにできれば、と思ったのですができないようです。 1個づつenabledを変更するしか手はないのでしょうか。
>>972 空MCにonPressとかのイベント(アクションは未定義でオッケ)を定義しておけば、
下のイベントは拾わなくなる
forループなどを使えば、一斉に変更するのはそれほど手間じゃないと思う
974 :
Now_loading...774KB :2010/10/21(木) 20:32:55 ID:0FXOXJ5V
AS2.0でアクションゲームを作成しようとしています。 壁を作るにあたって、ムービークリップ同士の衝突判定をしようとhitTestで判定を行おうとしているのですが、 プレビューをしてみたところ判定が行われず、壁のムービークリップをすり抜けてしまう状態です。 判定部分は以下になります。 if (this.hitTest(_root.hero.getBounds(_root).xMax, _root.hero._y, true)) { this._x -= 5; } if (this.hitTest(_root.hero.getBounds(_root).xMin, _root.hero_y, true)) { this._x += 5; } if (this.hitTest(_root.hero._x, _root.hero.getBounds(_root).yMax, true)) { this._y -= 5; } if (this.hitTest(_root.hero._x, _root.hero.getBounds(_root).yMin, true)) { this._y += 5; } ※hero=キャラクターのムービークリップ名 問題点等ありましたらご指摘よろしくお願いいたします。
ということは 上に重ねるMCに onPressイベントを定義しておけばいけそうですね。 やってみます。ありがとうございました。
>>974 なんかよくわからんのだけど
thisは何なの?
heroがthisならこれ壁が出てきてないじゃないか
if(hero.hitTest(壁MC)){
方向転換処理
}
見たいな感じにするんじゃないかな?
977 :
958 :2010/10/22(金) 02:06:17 ID:i3N+ngFS
>>965 レスさんきゅう!
確かに、対象全体のXMLオブジェクトのklmObjと関連付ける記述が無いですよね。
とりあえず、楽しようとせずに klmObj..placeNS::[要素とか] の形式で書きます。
978 :
Now_loading...774KB :2010/10/22(金) 04:48:51 ID:5b0lO25L
環境:CS4,WinXP,AS3(またはAS2),Player10 随時変化するグラデーション背景を持つ親SWFに子SWFを読み込ませようとしていますが、 親子間で背景が一致せず悩んでいます。 ※常に子のステージの色があるため 理想的には、子SWFが透過GIFのように絵柄(MC)だけだったり、AIRの透明ウィンドウアプリケーション のようにして親に読み込ませることです。 特にAS3には拘りません(AS2は「ある意味」自由度が大きいですしw) よろしく願います。
979 :
978 :2010/10/22(金) 05:13:02 ID:5b0lO25L
(上の補足) 開発環境もFlashCS4に拘りません(Flexとか)。Player10.1でも実現可能なら導入します。
>>978 子swfのオブジェクトが何もない部分は普通に透過するとおもうけど。AS2だけど
AS3だと透過しないのか??
俺何か読み間違いしてる?
981 :
974 :2010/10/22(金) 10:29:22 ID:o5tZ+nmQ
>>981 heroはどういう風に動いてんの
>>974 の部分だけ和訳すると
壁とheroの右端の一点が重なったとき壁を横にー5動かす
壁とheroの左端の一点が重なったとき壁を横に+5動かす
壁とheroの下端の一点が重なったとき壁を縦に+5動かす
壁とheroの上端の一点が重なったとき壁を縦にー5動かす
になる
一切heroに指示出してないんだけど
heroの向きを変えたいんじゃないの?
983 :
978 :2010/10/22(金) 20:12:51 ID:I5++075G
>>980 すいません。検証不足でした。
確かに子SWFの背景は透明になります。
AS2.0で質問です root上に400*300の親MCを設置(手動)して、rootのフレームからさっきのMC内に 20*196くらいの子MCをattachMovieで縦に40個くらい呼び出した後、 親MC内でtrace(this._height)とやると400と出てしまいます。 縦幅20の子MCが縦に40個の場合ですので800という値が欲しいのですが、 どうすればよいのでしょうか。ちなみに無理やり_height=800と 記述すると親MCが正規の縦幅で表示されなくなります。(縦に伸びた感じ?)
親のmcでthis.heightやってるんだから、親=thisで親のheightが表示されている=400で正しいわけだが。
えぇ?そうかぁ?
ちょっと今、親よりでかい子1個で実験したら
子MCの_heightが返ってきたんだけど?
>>984 traceするタイミングか場所間違えてない?
てか俺がなにかまちがえてるのかなぁ?w
とりあえずもう寝ます。また明日
>>984 _root.親MC._heightで、求める高さが出るよ
988 :
Now_loading...774KB :2010/10/23(土) 06:44:57 ID:1eoNlHd8
AS3のWinXP(FlashCS4)です。 SWFが再生されたとき、それが「ブラウザか何かに埋め込まれている」か 「単独(スタンドアローン)か」をASで判別する術はありますか?
>>988 flash.system.Capabilites.playerType
あとはjavascriptオン前提で環境が限られるけどExternalInterface使ってブラウザかそれ以外かを判別かな
>>988 ああ…タイプミスすみません↓が正しいです
flash.system.Capabilities.playerType
>>985-987 1フレームしか使ってないのでタイミングとかは平気だと思います。
もしかしてMC内からのtrace(_height)とルート上からtrace(親mc._height)って
値が違うなんてあります?
trace(this._height)だとthisを間違えてる場合正しい答えにならんから trace(親mc._height)で確認できるってことでしょ とりあえずやってみそ 値が違う場合はthisが親mcでなかったってことで
>>991 ルートに400×300ピクセルのインスタンスpMCを配置
高さ20ピクセルのcMC(識別子cMC)をシンボルで作成
for(i=0; i<40; i++){
MC = pMC.attachMovie('cMC', 'cMC'+i, i);
MC._y = i*20;
}
trace(pMC._height)
これでちゃんと800がトレースされるはず
パスか、座標か何か間違えてると思います
追記 1フレームしか使ってないということですが ちゃんとattachMovieが終わった後にトレースするようになってますか? ルートのタイムラインやムービー内のタイムラインに分散してスクリプトを書くような場合は、 レイヤーの読み込み順や処理順をきちんと考慮しないと期待する値が返ってこない場合があります
javaスクリプトで応答信号を作っておくとか?
996 :
988 :2010/10/23(土) 19:49:54 ID:8Wazg/Wz
>>990 なるほど。Playerのタイプで判別でつね。
あと、どなたか次スレ準備願います。
ume
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。