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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ActionScript2.0で既存Classにメソッドを追加する方法
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.2782
投稿日時: 2004-1-9 6:46
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: ActionScript2.0で既存Classにメソッドを追加する方法
ActionScript 2.0では、既存のクラスを直接修正せず、サブクラスを定義することが王道になります。
引用:
koike-xpさんは書きました:
ActionScript1.0の時には既存Classにメソッドを追加すること
(String.prototype.XXXXXXと行った文法で既存Classにメソッドを追加するあれです。)
を良くやっていたのですが、ActionScript2.0の場合の書き方というものは存在するのでしょうか?
「prototype」を使用したActionScript1.0の方法でも一応ActionScript2.0で認識はするのですが、その場合、外部ファイルで定義するClass内でその定義した関数を使用しようとすると、そのメソッドはないというエラーが返ってきてしまいます。

// クラス定義ファイル: MyString.as
class MyString extends String {
	function MyString(_str:String) {
		super(_str);
	}
	function findAndReplace(from_str:String, to_str:String):String {
		return this.split(from_str).join(to_str);
	}
}

// Flashムービー: MyString.asと同階層に配置
// フレームアクション
var s:MyString = new MyString("Actionscript 2.0");
trace(s.findAndReplace("s", "S"));  // 出力: ActionScript 2.0

どうしてもprototypeに定義したい場合には、既存クラスを定義しているString.asに宣言を追加します。ただし、お勧めする方法ではありません。
// クラス定義ファイル: String.as
//****************************************************************************
// ActionScript Standard Library
// String object
//****************************************************************************

intrinsic class String
{
	function String(string:String);
	// [中略]
	// メソッドの宣言を追加
	function findAndReplace(from_str:String, to_str:String):String;
	static function fromCharCode():String;
	var length:Number;
}


----------------
 

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   ActionScript2.0で既存Classにメソッドを追加する方法 koike-xp 2004-1-8 21:51
     Re: ActionScript2.0で既存Classにメソッドを追加する方法 TatsuoKato 2004-1-9 2:20
       Re: ActionScript2.0で既存Classにメソッドを追加する方法 koike-xp 2004-1-9 11:28
         Re: ActionScript2.0で既存Classにメソッドを追加する方法 Fumio 2004-1-9 17:42
   » Re: ActionScript2.0で既存Classにメソッドを追加する方法 Fumio 2004-1-9 6:46

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