トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     インスタンスからprivateメンバへの直接アクセスが許可される
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
takiguchi
Åê¹ÆNo.4500
投稿日時: 2004-3-3 17:26
半人前
居住地: 東京
投稿: 38
使用環境:
Win2K,FlashMX2004Pro7.0.1
インスタンスからprivateメンバへの直接アクセスが許可される
こんにちは。

以下のケースでインスタンスからprivateメンバへの直接アクセスが許可されてしまいます。

・厳密な型指定を行わないインスタンス
・関連付けしたシンボルのインスタンス

ActionScript 2.0の厳密な型指定をすると、シンタックスチェックをやりますが、
他の場合は自己管理でお願いしますということになるんでしょうか?(^^;;
他のオブジェクト指向言語の経験がないので一般的な考え方は分かりませんが、
ちょっと心配です。
//PrivateTest.as
class PrivateTest extends MovieClip{
	private var __prop;
	private function getProp(){
		return __prop;
	}
	function PrivateTest(){
		__prop = "hello";
	}
}
//TimeLine
var a:PrivateTest = new PrivateTest();
var b = new PrivateTest();
attachMovie("PrivateTest","c",1);
//trace(a.__prop); //エラー
//trace(a.getProp); //エラー
trace(b.__prop); //出力:hello エラーなし
trace(b.getProp()); //出力:hello エラーなし
trace(c.__prop); //出力:hello エラーなし
trace(c.getProp()); //出力:hello エラーなし
加藤達雄
Åê¹ÆNo.4504
投稿日時: 2004-3-3 18:48
新米
居住地: 東京
投稿: 24
使用環境:
Win XP Pro
MX Pro 2004
Re: インスタンスからprivateメンバへの直接アクセスが許可される
引用:
takiguchiさんは書きました:
以下のケースでインスタンスからprivateメンバへの直接アクセスが許可されてしまいます。

・厳密な型指定を行わないインスタンス
・関連付けしたシンボルのインスタンス

ActionScript 2.0の厳密な型指定をすると、シンタックスチェックをやりますが、
他の場合は自己管理でお願いしますということになるんでしょうか?(^^;;

そういう解釈で良いと思います。
型指定は、変数となる識別子に対して行うもので、その識別子が内部的に保持する情報になります。

attachMovieの場合、takiguchiさんの例の"c"というインスタンス名は自動的には型指定されません。
var c:PrivateTest = attachMovie("PrivateTest","c",1);
の形で、識別子"c"を型指定することは可能です。
takiguchi
Åê¹ÆNo.4505
投稿日時: 2004-3-3 19:25
半人前
居住地: 東京
投稿: 38
使用環境:
Win2K,FlashMX2004Pro7.0.1
Re: インスタンスからprivateメンバへの直接アクセスが許可される
Katoさん、ありがとうございます。
引用:
attachMovieの場合、takiguchiさんの例の"c"というインスタンス名は自動的には型指定されません。
var c:PrivateTest = attachMovie("PrivateTest","c",1);
の形で、識別子"c"を型指定することは可能です。

なるほど!シンボルのインスタンスは型指定できないのかと思ってました。(^^;;
情報隠蔽を重視したいのなら、とにかく型指定すべし!って感じですね。
すいません、もう一つ教えてください。
attachMovieによるインスタンスの動的生成の場合は、
Katoさんに教えて頂いたやり方
var c:PrivateTest = attachMovie("PrivateTest","c",1);
で型指定可能ですが、ライブラリからドラッグ&ドロップしてステージに予め配置した
シンボルのインスタンスはどうやって型指定すれば良いのでしょう?
takiguchi
Åê¹ÆNo.4506
投稿日時: 2004-3-3 19:30
半人前
居住地: 東京
投稿: 38
使用環境:
Win2K,FlashMX2004Pro7.0.1
Re: インスタンスからprivateメンバへの直接アクセスが許可される
引用:
ライブラリからドラッグ&ドロップしてステージに予め配置した
シンボルのインスタンスはどうやって型指定すれば良いのでしょう?

あ!すいません…
投稿してる間に自己解決しました。(^^;;

配置したシンボルのインスタンスを"d"とすると
そのタイムラインで
var d:PrivateTest;
とすれば良いみたいでした。(^^;;
お騒がせしました…

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops