1read 100read
2011年10月1期FLASHFlashの超基本的な質問はここでしろ! part42 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
┫千葉┣「千葉の片隅から」閉鎖
超グロ画像
自分を「ネ申」と思った時
AS3の難読化、暗号化


Flashの超基本的な質問はここでしろ! part42


1 :11/05/19 〜 最終レス :12/01/12
どの質問スレでもスルーされるような超基本的な質問はここでしろ!
調べるのがめんどくさい初心者はなんでもかいとけ!知ってたら即、答えるし、
知らんかったら知らんと書く。検索なんかクソでも喰っとけ!教えて君以外はってヨシ!
質問テンプレ(書いてあると回答者がレスしやすい)
(1)使用ソフト/バージョン:FLASH 5/ MX / MX2004 / Pro / 8Pro / 8Basic など
(2)OSのVer:Win2K/ WinME /WinXP /MacOS 10 など
(3)作品の具体例がある場合はリンク必須
(「このサイトのように○○したいhttp://〜」とか)
前スレ
Flashの超基本的な質問はここでしろ! part41 (DAT落ち)
ttp://hibari.2ch.net/test/read.cgi/swf/1274977716/
関連スレ
ActionScript 誰かが物凄い勢いで解答するスレ 28
http://hibari.2ch.net/test/read.cgi/swf/1302831971/

2 :
1おつ

3 :
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
private function onMouseDown(e:MouseEvent) : void {
removeChild(e.target);
}
このようなコードを書くとremoveChildのところで
「1118: 静的型 Object の値が、関連しない可能性が高い型 flash.display:DisplayObject に暗黙で型変換されています。」
というエラーが出てしまいます。非常に初歩的なことかと思いますが、よろしければどこがいけないのかご指摘下さい。

4 :
まずMouseEvent.targetはObject型として返される
そしてremoveChild()はDisplayObject型を引数にしなくてはならない
だからe.targetをそのままいれると暗黙の型変換で怒られる
なのでこれをDisplayObject型にキャストして渡さなくちゃならない
removeChild(e.target as DisplayObject); もしくは
removeChild(DisplayObject(e.target));
ターゲットがなんなのかわからないから何とも言えないけど
DisplayObjectの部分をターゲットのクラスSpriteやMovieClipに読み替えてもよし
環境もちゃんと書いてね。

5 :
>>4
分かり易いご回答ありがとうございます!
removeChildの対象にするためにはDisplayObjectの子孫である事を明示的にしないといけないんですね。
もしよろしければもう一つの疑問にお付き合いください。
実は今、練習として「ステージがクリックされたら、シンボルから新たにインスタンスを作成してステージに配置し、
すでにステージに配置されているインスタンスがクリックされたら、そのインスタンスを消去する」という処理を考えています。
そこで以下のようなコードを外部ファイルprac.asとして書いたのですが、ステージに対するクリックを認識してくれないようです。
(flaのメインのドキュメントクラスをpracとし、そこにクラス名をmyMCとしたシンボルのみを作成してActionScript用に書き出しています)
環境はFlashProfessional CS5 AS3.0です。
遅くなりましたが、>>1スレ立てありがとうございます!

6 :
package {
import flash.display.*;
import flash.events.*;
public class prac extends MovieClip { // メインのドキュメントクラス
var testmc:myMC = new myMC(); // これは生成できる
var testmc2:myMC = new myMC(); // これも生成できる
public function prac() { // -- コンストラクタ --
addEventListener(MouseEvent.CLICK, onClick);
addChild(testmc); // 事前に配置すれば配置できる
testmc.y = testmc.x = 100;
addChild(testmc2);
testmc2.y = testmc2.x = 200;
}
private function onClick(e:MouseEvent) : void { // -- クリックイベントハンドラ --
trace("onClick: " + e.target); // 事前に配置したmcをクリックしたときだけトレースされる
if (e.target == this) {
var mc:myMC = new myMC();
mc.x = this.mouseX;
mc.y = this.mouseY;
addChild(mc);
}
else {
removeChild(DisplayObject(e.target));
}
}
}
}

7 :
大変見難くなってしまって申し訳ありません。

8 :
>>6
this.addEventListener(MouseEvent.CLICK,onClick);
public function onClick(e:MouseEvent):void {
trace(1);
}
でわかると思うけどMyMC以外をクリックしてもマウスイベント自体を拾っていない
なぜかというと描写されていない部分はマウスイベントを拾わないから
stage.addEventListener(MouseEvent.CLICK,onClick);
public function onClick(e:MouseEvent):void {
if (!(e.target as MyMC)) {//targetがMyMCクラスじゃなければ
var mc:MyMC=new MyMC();
mc.x=this.mouseX;
mc.y=this.mouseY;
addChild(mc);
} else {
removeChild(MovieClip(e.target));
}
}
うーん。うまくないなあ

9 :
if (!(e.target as MyMC))
じゃなくて
if (!(e.target is MyMC))
だった

10 :
>>8-9
ありがとうございます、isでもasでも出来ました。
if (e.target == stage)でも出来ました。
まだ構文や階層構造など理解不足な点は多いですが、今後少しずつ理解を深めて行きたいと思います。
お陰さまで今夜はゆっくり眠れそうです、本当にありがとうございました!

11 :
>>10
object is Class
objectがClass型またはClassを継承した型ならtrueそうでなければfalseを返す
object as Class
objectがClass型またはClassを継承した型ならClass型としてのobjectをそうでなければnullを返す
と違いがあるんだけどif(オブジェクト)はtrueだしif(null)はfalseなので
ifに入れた挙動は一緒だったというわけ

12 :
新しくCS5.5を買おうかと思ってるんだけど、5.5と5+無償VUの
どちらがオススメ?
後者のが1万以上安いんだけど、なにか罠があるとか…

13 :
CS6の時に1万差つくんじゃね

14 :
ダイナミックテキストで2011/5/22といった風に日付を表示したいのですが、
どのように作成すれば良いのでしょうか?
ものすごく初歩的な質問(なのだと思います)で申し訳ありません。

15 :
>>14
>>1
とくに使用ソフト

16 :
8ProからCS5.5へアップグレードしたいのですが、
インストーラーの、前バージョンのシリアルを入力する画面のドロップダウンリストに、
FLASH8の項目がありません。(CS3,CS4はある)
8Proのシリアルナンバーを使ってアップグレードを行うには、どうすればいいのでしょうか。
購入したのは「CS4、CS3、またはFLASH8Pro、FLASH8Basicから」のアップグレード版の、ダウンロード販売版です。

17 :
>>15失礼しました。
OSはwindows vista、ソフトはFLASH8Proです。

18 :
>>17
すまんAS2かAS3かが1番大事なんだ
今日の日付を得ることはできてるの?

19 :
すいません 今球の衝突をやっています ASはAS3です。
if(mainball.x >= ball1.x
{
dx = dx / 2 * - 1;
dy = dy / 2 * -1;
1dx = dx / 2;
1dy = dy / 2;
}
と打ったのですが、球に当たって無くても条件満たすと勝手に球が移動してしまいます。
AS2の衝突のソースも見たんですがわかりませんでした。助けてください

20 :
反応っていうか
mainball.x
mainball.y
ball1.x
ball1.y
にちゃんとアクセス(値が読める)できているなら
この四つから二つのボールの距離は出せるでしょ
距離d、共通のボール半径rとすると
d<=2*r
なら衝突していると言えるはず

21 :
>>20
すいません 半径とかまだよくわかってませんちょっとがんばってみます

22 :
半径は自分で書いた絵のボールの半径でしょ
ムービークリップ作ったんだよね?

23 :
>>22 そうですね自分で作ったやつです。
作り方としては矩形から適当な大きさにつくりそれをコピーして複製したやつに
個別にインスタンス名をつけました。

24 :
>>23
それなら半径はわかるだろ
ムービークリップの中心(0,0)は円の中心になってる?

25 :
すいません追加で質問です。環境はFlashProfessional CS5 AS3.0です。
今沢山の変数を作らなきゃいけない状況なんですが、
var a=0;
var b=0;
var c=0;
と一個ずつやるのが面倒です。そこで
var a=0,b=0,c=0;
とやったのですがうまくいきませんでした?もしかして一個ずつじゃないと駄目なんでしょうか?
それともまたh他にやり方があるのでしょうか?
後名前の所にsageって入れればみんなみたいになるのかな?

26 :
ならなかった・・・
プロパティで確認したんですがxとyとwとhしか乗ってませんでした・・・
もしかして確認方法って位置とサイズじゃない場所ですか?
てかでてないんだから別な場所ですよね。。。

27 :
>>25
まず型が指定してない

28 :
>>26
http://www.dotup.org/uploda/www.dotup.org1661559.jpg
たぶんこうやって中心がずれてる(円の左上にきてる)から
http://www.dotup.org/uploda/www.dotup.org1661563.jpg
w,hの値を2で割ってマイナスを付けてx,yに書き込む
ついでに半径はその2で割った値
この場合61

29 :
>>28
最初から中心に来てました。
マイナスつけてxとyに登録したら画面外にいってしまいました
これでよかったんでしょうか?

30 :
>>29
いいわけなかろうwww
ちゃんとライブラリのムービークリップダブルクリックして円を選択してからやった?
画面アップできる?

31 :
>>30
すいません解決しました

32 :
質問です
http://allabout.co.jp/gm/gc/66837/
この神経衰弱にキーで動かせるカーソル(Cursor)を加えて
enterキーで決定できるようにしたいのですが
2フレーム目のアクション
_root["cards" + i].onRelease
の次に
if (Cursor._x = this._x && keyDown(key.ENTER))
という条件を付けてみましたが、うまく動きません
何が間違っているのでしょうか。

33 :
>>32
それボタンアクションだからマウスでボタンを押したときにのみ判定されてるんじゃね

34 :
>>33
onReleaseで動いてた物をkeyDownで動くように変えたいので
何かしらプログラムの入れ替えが必要だとは思うんですが
下手に手を加えるとエラーが発生するばかりです・・・

35 :
>>34
とりあえずキー操作でカーソルが動かせるようにしなよ
ttp://hakuhin.jp/as/key.html#KEY_00_02

36 :
>>35
カーソルは新しくレイヤーを作って動かせるようにしました
ttp://up3.viploader.net/pc/src/vlpc007441.png

37 :
>>20なんですが距離の出しかたが分かりません。
ball1のxとyが-11.95でmainballのxとyが-11.95の場合どうなりますか?

38 :
>>36
そのソースだとKey_UPの値は一回1になったらもう戻んなくね?
>>37
三平方の定理だよ・・・
http://hakuhin.jp/as/hittest.html#HITTEST_02
ここの「aに当たる部分の長さ」だよ

39 :
URLにあるサイトの
onClipEvent (load) {
// 青い円
ax = _x; // 中心 x 座標
ay = _y; // 中心 y 座標
ar = _width / 2; // 半径
// 赤い円
bx = _root.red._x; // 中心 x 座標
by = _root.red._y; // 中心 y 座標
br = _root.red._width / 2; // 半径
startDrag ("", true); // ドラッグ開始(中央に吸着する)
}
これなんですが
rootとかのAS3への変え方は分かるんですが
onClipEvent (load) がわかりません。

40 :
>>38
とりあえずカーソルだけは問題なく動いてます
http://help.adobe.com/ja_JP/FlashLite/2.0_FlashLiteAPIReference2/WS5b3ccc516d4fbf351e63e3d118ccf9c47f-7c87.html
やはりonReleaseが曲者で、外すに外せません
onKeyUpに付け替えて、そっちで_root["cards" + i]とカーソルの座標を合わせた方が良いんでしょうか

41 :
>>39
それはムービークリップが読み込まれたときに
一回だけ実行される関数だから気にしなくていいよ
距離はこれ
>まず a に当たる部分の長さを求めます。三平方の定理から下の式で求まります。
>Math.sqrt((円Aの x 座標 - 円Bの x 座標) * (円Aの x 座標 - 円Bの x 座標) + (円Aの y 座標 - 円Bの y 座標) * (円Aの y 座標 - 円Bの y 座標))
Math.sqrt()はAS3でも使える(ASファイルもいらない)

42 :
>>40
どういう風に作りたいのかによるけど
マウスでの操作は残すの?
俺ならonEnterFrameじゃなくてキーボード押したときに判定するけど
判定を行うのはキーを押したときだけなんだから毎フレーム監視するする必要なくないかな
あとなに?FLASH Lite2.0なの?

43 :
ということは私の場合距離の式は
Math.sqrt((mainball.x - ball1.x) * (mainball.x - ball1.x)
+ (mainball.y - ball1.y) * (mainball.y - ball1.y))
となるという認識でよろしいでしょうか

44 :
>>43
そう。距離がちゃんと取れているなら
その値をtrace()してみれば目算でおかしくないことがわかるはず
あとはこの距離がお互いの円の半径の合計(=2*r)より小さくなれば衝突しているとみなしてよい

45 :
>>40
いちおうこんなかんじ
//カーソルをtarget1と名付けてcardレイヤーのcard0の上にでもおく
//1フレーム目のアクションに追記
var key_obj = new Object();
key_obj.onKeyDown = function() {
if (Key.isDown(Key.UP)) {
target1._y -= 100;
}
//下右左も同じように。省略
if (Key.isDown(Key.ENTER)) {
var xi = int(target1._x / 100);
var yi = int(target1._y / 100);
var mc:MovieClip = _root["cards" + (xi + yi * 4)];
mc.blindfold._visible = false;
trace("clickCount" + clickCount);
if (clickCount == 0) {
question(mc,mc._currentframe);
} else {
answer(mc,mc._currentframe);
}
}
};
Key.addListener(key_obj);
//

46 :
>>44



219.1187919827964
219.1187919827964
219.1187919827964
219.1187919827964
-80
0
219.1187919827964
219.1187919827964
219.1187919827964
219.1187919827964



とでます。
-80は当たった瞬間で
0は通り過ぎた後に出ます。
二つを隣接させた状態ではじめたら-80と0無しでずっと219(ry
の状態です。たぶん。。。いや絶対間違えてますよね?

47 :
>>46
ブロパティがちゃんととれてるのか以前にあの計算式からマイナスがでるのはおかしい
そこの部分のコードをはってくれ

48 :
mainball.x = 450;
mainball.y = 250;
var r = mainball.w /2;
var nagasa = Math.sqrt((mainball.x - ball1.x) * (mainball.x - ball1.x) + (mainball.y - ball1.y) * (mainball.y - ball1.y))
一番最初のmainball.xと.yは白ボールの初期位置としておいてます。

49 :
>>47
そしてすいません0とかマイナスなのは自分が打った球のxとyの移動でした。
全て
219.1187919827964
で固定です。打って位置を変えても同じです
ちなみに初期位置を変えると値が変わってずっとそれで固定になります。

50 :
そこは問題なさそう
でどこでtraceしてるの?その部分も

51 :
>>47
追記
nagasaの文をaddEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);内にいれたら
21.360009363293827
19.258504614844853
17.36922565919392
15.692354826475215
14.22708684165523
12.926813219042028
11.790780296485874
10.816653826391969
9.960045180620408
9.219544457292887
8.592002094971795
8.07217442824421
7.652613932506983
7.295375247374175
6.997142273814343
6.753517601961202
6.5591539088513455
6.408002808988148
6.293647591023818
6.209669878504
と変動しました。
しかし
if(nagasa >= r*2)
{
trace("ぶつかったよ!");
}
が出力で出ませんでした。

52 :
>>50
trace(nagasa);
はaddEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);内です。

53 :
すいません自己解決しました。とりあえず判定の部分は終わりです。

54 :
>>53
不等号ぎゃくだったね
わかってきたと思うけどenterframeに書かなきゃ基本的に何も更新されないよ
ボールを動かすのかenterframeで距離もそれに応じて変わるんだから判定文もそのあとの処理もenterframe内に書かなきゃ

55 :
>>54
いろいろありがとうございました。enterframe内に書くことが大事だといまさら知りました・・・
今ボール9個分の判定入れてます・・・

56 :
こんにちは。ユーザがPC内の画像ファイルをアップロードできるような
ものを作っているのですが、AS2.0には、browse()という機能は
あるのでしょうか?
3.0にはあるようなのですが…
よろしくお願いします。

57 :
>>56
ないと思う
3.0にしましょう

58 :
>>45
>>40です
遅まきながら、ありがとうございます
カーソル名をtarget1に変えた事を忘れてそのまま画像をupしていました・・・
1フレーム目でキー操作を可能にした方が良かったんですね
勉強になりました

59 :
>>58
や、2フレーム目に書いたら何回も通るとこだからイベントがなんかいも登録されちゃうので
一回しか通らない1フレーム目に書いただけだよ

60 :
>>18
何度もすみません。AS2です

61 :
>>60
日付の取得はこんかんじだけど
ttp://hakuhin.jp/as/time.html#DATE_01
ステージにFlash8で作成したテキストフィールドをダイナミックテキストにして
変数名をつけて
変数名.text="";
でテキストに表示
ttp://yuuho.qee.jp/2009/10/flash-as-.php

62 :
>>57
お礼が遅れました。ありがとうございます。
やっぱりないんですね
他の部分を2.0で作っちゃいましたとほほ…
JAVASCRIPTでけるという話も聞いたので
それでがんばってみます。

63 :
http://hakuhin.jp/as/raster_efc.html#RASTER_EFC_02
こちらのサイトの「ドットを拡大してモザイクをかける」をコピペして、同じムービークリップ内に2箇所のモザイクをかけようとしているのですが、
上手くいかず困っています
描画用ターゲットとしてrenderA、renderBを同シンボル内に配置し、それぞれ単体しか存在しない(片方を消してみると)状態では、
それぞれモザイクとして機能してくれるのですが、2個同時に配置すると、下のレイヤーに配置されるものだけがモザイクになります
(レイヤーを入れ替えると、今までモザイクになっていなかったほうがモザイクになります)
どうにか2箇所同時にモザイクを表示する方法はありませんでしょうか
どうかご教授お願いいたします
環境は
・使用ソフト:Flash CS3
・OS : Win7 64bit

64 :
片方を入れ子にしたら解決してしまいました
もし気にかけて下さった方がおられましたらありがとうございます
お騒がせして申し訳ありませんでした
結局何が原因だったのかはよくわかりませんでしたが・・・

65 :
こんにちわ ビリヤードのflashを作っています 環境はCS5のAS3です。
今穴に入った時の判定をしています。
if (ball3.x > 282 - 5 && ball3.x < 307 + 5)
{
if(ball3.x != 999)
{
if (ball3.y < 171 + 5)
{
if (flg == 0)
{
ply += 1;
ko -= 1;
ball3.x = 999;
ball3.y = 999;
dx3 = 0;
dy3 = 0;
}
else
{
com += 1;
ko -= 1;
ball3.x = 999;
ball3.y = 999;
dx3 = 0;
dy3 = 0;
}
}}
}
とこのように穴に入ったら球のカウントを減らし落とした人(プレイヤーかCOM)に個数を加算させています。
こちらはenterframe内に書いているのですが、穴に入った後に座標の999、999まで飛ばずに固定されてどんどんカウントが減ってしまいます。
私の場合球のカウントが0になったらゲームクリアになっていますので、入った瞬間にゲームクリアになってしまいます。
どのように修正したらいいでしょうか?

66 :
dx3,dy3はball1の移動量です
flgは操作しているのがコンピュータかプレイヤーか判断させるためです。

67 :
訂正 ball1の移動量× ball3の移動量

68 :
>>65
trace(ball3.x,ball3,y);///////////////////////////////
if (ball3.x>277 && ball3.x<312) {//x:277-312
if (ball3.x != 999) {
if (ball3.y<176) {//y:176-
if (flg == 0) {
ply += 1;
ko -= 1;
ball3.x = 999;
ball3.y = 999;
dx3 = 0;
dy3 = 0;
} else {
com += 1;
ko -= 1;
ball3.x = 999;
ball3.y = 999;
dx3 = 0;
dy3 = 0;
}
trace(ball3.x,ball3,y);////////////
}
}
}
この二か所にtrace書いてみて出力はどうなってる?

69 :
trace(ball3.x,ball3,y)まちがえた
trace(ball3.x,ball3.y)ね

70 :
>>69
491 306
999 999
491 306
999 999
491 306
999 999
491 306
999 999
491 306
999 999
の繰り返しでした・・・

71 :
解決しました。他の壁判定に引っかかって強制的に戻されていたようです。

72 :
>>71
細かくtrace()でチェックするのが大事だよ
今回だとif文の最後ではちゃんと(999,999)になって期待の動作をしていることがわかる
さらに次のフレームでは(491,306)になってることもわかる
つまり他の部分が原因ってことがわかるからね。
怪しいと思った処理の行う前と行った後で値をみて原因の場所を特定するのだいじ

73 :
>>72
いろいろありがとうございましたこれからはちゃんとtraceでも出なかったらこちらにこさせていただきます。

74 :
AS3でマウスカーソルの位置を強制的に変更するにはどうしたらいいでしょうか?
stage.mouseXに無理矢理入れてみたら、読み取り専用だと怒られました。

75 :
>>74
ActionScript 誰かが物凄い勢いで解答するスレ28の>>21には誰も答えてないな
セキュリティかなんかの問題でないんじゃね?

76 :
>>75
あっほんとだ、同じ質問がありましたね。
WinAPIなら出来るので当然出来ると思っていましたが、
「as3 マウス 座標 セット」とかでググっても思うようなページが見付からず。
仰るとおり無いのかも…?
ご回答ありがとうございました。

77 :
>>76
結構ありそうな要望だと思うんだけど
くぐっても「できる」とも「できない」とも書いてあるるのを見つけられないなあ

78 :
>>74
できないよ。
マウスカーソルの形をしたSpriteを表示して、その座標をコントロールという擬似的なやり方はあるけど。

79 :
>>78
それ考えたけどあれだよね
本当のマウス座標が画面から出たら表示されちゃうよね
操作したあとenterframeですこーしずつ本当のマウス座標に近づけたらばれないかも?

80 :
>>79
そら当たり前。だからあくまで「擬似」。
例えばフルスクリーンにするとかで回避もできるよね。
こういうのもあるぜ
http://www.powercursor.com/

81 :
>>80
なかなかおもしろい
出た時も自然だね

82 :
教えて下さい。
swfファイルだが手元にあるのですが、これがどんなオーサリングツールで
作られた物か判断する方法やツールはありますか?

83 :
ttp://doruby.kbmj.com/hal_on_rails/20100411/SWF_
ここになかったないんじゃないかな
adobeってなんか埋め込んでそうだけど・・・

84 :
>>83
URL見てみたのですが、オーサリング情報みたいのは、
ないみたいですね。紹介されてないだけかも知れないですが。
どこかに保存されているような気もするのですが。。
ありがとうございました。

85 :
教えてください。age失礼します。
FlashCS4 AS3で ムービークリップをドラッグしたいのですが
MCの中のMCの方がドラッグされてしまいバラバラになってしまいます。
複数のドラッグをしたいので event.targetみたいなのは使いたいです。
うまく伝えられないのでソースとswfをアップしました。
inst_maru.addEventListener(MouseEvent.MOUSE_DOWN,StartDrag);
function StartDrag(event:MouseEvent):void {
event.target.startDrag();
}
ttp://www1.axfc.net/uploader/Sc/
Sc_238583.zip (flash_test_drag.zip)
よろしくお願いします。

86 :
眠いから明日ね

87 :
ファイル見られないけど
e.target.parent.startDrag();
階層の数だけparent.を増やすといい

88 :
e.target.parent.startDrag();
e.target.parent.parent.startDrag(); などですね。
クリックされた場所によってparent.参照回数を可変にするのはいい方法を思いつきません。
.タイムライン
. └インスタンス(ムービークリップ)  ←動かしたいのは この座標
.   └枠+絵柄
.     └枠       ←ここをドラッグした時
.     └絵柄
.       └絵柄細部
.         └・・・  ←ここをドラッグした時

89 :
Flashで、他言語の様に画面描画を全てBitmapで処理する。というのは実用的でしょうか

90 :
>>88
nameプロパティを見てインスタンス(ムービークリップ)にたどり着くまで再帰するとか
そもそもインスタンス(ムービークリップ)を変数に保持しといて動かすとか

91 :
>>88
目標のインスタンスをmc1, mc2として
stage.addEventListener(MouseEvent.MOUSE_DOWN, StartDrag
stage.addEventListener(MouseEvent.MOUSE_UP, StopDrag);
private function StartDrag(e:MouseEvent) {
for (var obj:Object = e.target; obj != stage; obj = obj.parent) {
if (obj == mc1 || obj == mc2) {
obj.startDrag();
}
}
}
private function StopDrag(e:MouseEvent) {
for (var obj:Object = e.target; obj != stage; obj = obj.parent) {
if (obj == mc1 || obj == mc2) {
obj.stopDrag();
}
}
}
}
mc1, mc2,…とか指定したくなければthis.numChildrenとthis.getChildAt()で目的のオブジェクトを検索して比較すれば出来るんじゃね

92 :
private function onDown(e:MouseEvent) {
for (var obj:Object = e.target; obj != stage; obj = obj.parent) {
for (var i:int = 0; i < this.numChildren; i++) {
if (obj == getChildAt(i)) {
obj.startDrag();
break;
}
}
}
}
private function onUp(e:MouseEvent) {
for (var obj:Object = e.target; obj != stage; obj = obj.parent) {
for (var i:int = 0; i < this.numChildren; i++) {
if (obj == getChildAt(i)) {
obj.stopDrag();
break;
}
}
}
}
こんな感じ
いずれにしても目標のインスタンスを何らかの方法で特定する必要があるかと

93 :
CS4でフラッシュ制作をしています。質問です。
フラッシュ動画をシーンに分けて制作しているのですが、
シーンをまたいでサウンドを流し続ける方法がどうしてもわかりません・・・
スクリプトを使うのはなんとなくわかるんですが、
調べてみても古いソフトでの方法しか出てこなく、お手上げ状態です・・・
わかる方いらっしゃったら教えていただけませんか?
よろしくお願いします。

94 :
シーンはつかっちゃだめって2.0時代に言われてきたからわかんないや・・

95 :
目的のインスタンスになるまでループでなんとかできました。
アドバイスくださった方ありがとうございます。

96 :
フラッシュで
たとえばアフリカやアジアの植民地の移り変わり
とか
東京メトロの路線の変換図などを作りたいのですが
あーいうのって素材は全部自分で作るのでしょうか?
たとえば地図で言ったらエジプトの領土だけの背景色を塗るとか
それともスキャナで地図を取りこんで、お絵かきツールか何かで全部分割して作るものなんでしょうか?
皆さんはどうしていますか?

97 :
たとえば各地域を色分けしたビットマップを1枚作っておけば
スクリプトで分割して好きな組み合わせ、色で表示させることはできるね
最初の地図はもう拾ってきて塗るしかないんじゃない?

98 :
初歩的な質問で申し訳ないのですが、
AS3.0でスタンドアロン(exe)でパブリッシュした時、
ウィンドウサイズを変更させないように出来ますか?

99 :
>>98
スタンドアロンでは、できないような気がする。
でも、Airでパブリッシュすればできるよ。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
┫千葉┣「千葉の片隅から」閉鎖
超グロ画像
自分を「ネ申」と思った時
AS3の難読化、暗号化