トップページ > FLASH > 2011年01月10日 > VL4sJjE9

書き込み順位&時間帯一覧

2 位/71 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000123



使用した名前一覧書き込んだスレッド一覧
Now_loading...774KB
431
ActionScript 誰かが物凄い勢いで解答するスレ27

書き込みレス一覧

ActionScript 誰かが物凄い勢いで解答するスレ27
431 :Now_loading...774KB[]:2011/01/10(月) 22:56:42 ID:VL4sJjE9
失礼します。

オリジナルクラスのオブジェクトを引数にして、
別のクラスで使用したいのですが、うまくいきません。

配列でいうところの「深いコピー(ディープコピー)」をしてしまっている
のではないかという疑問があるのですが、
Sprite型のオブジェクトを継承したオリジナルのクラスでも
そういうことは起こるのでしょうか?


以下のようなことをしたのですが、うまくいきません……。

Main.as------------------------------------------------------------
var baseObject:クラス■ = new クラス■(引数, ...);
addChild(baseObject);

var copyObject:クラス★ = new クラス★(baseObject, 引数, ...);
addChild(copyObject);


クラス★.as コンストラクタ----------------------------------------
function クラス★(inObject:クラス■, 引数:型, ...):void {
var baseObject2:クラス■ = inObject;
addChild(baseObject2);
.
.
.

ActionScript 誰かが物凄い勢いで解答するスレ27
434 :431[sage]:2011/01/10(月) 23:51:12 ID:VL4sJjE9
>>432
ありがとうございます!


「思い通りに」という点について、補足しておきます。
こちらの望みは、
もともとのMain.asのbaseObjectはそのまま画面に表示されたまま
新たにクラス★.asのbaseObject2が描画されて、
例えばbaseObject2をドラック&ドロップしたり、回転させたり、拡大縮小したりしても
元のbaseObjectには何も影響がないような状態にすることです。


配列の場合、
【1】array = inArray;      //深いコピー(arrayの変更がinArrayに反映される)
【2】array = inArray.concat( ); //浅いコピー(arrayの変更がinArrayに反映されない)
というのがあるようなので、
SpriteやMovieClipを継承したクラスでも【2】のようなことをしたいです。


ちなみに一応クラス★でaddChildの記述を外してみましたが、
イベントの処理が一切反映されなくなりました……。
ActionScript 誰かが物凄い勢いで解答するスレ27
436 :431[sage]:2011/01/10(月) 23:58:12 ID:VL4sJjE9
>>433
どうもです!

「うまくいかない」というのは、
「コピー元のオブジェクトから新たなオブジェクトを複製したいのに、
画面上には1つのオブジェクトしか表示されない」
ということです。

言葉が足らず、申し訳ありません……。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。