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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     コンパイルエラー「1023:オーバーライドできません」について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
youhey535
Åê¹ÆNo.43581
投稿日時: 2009-10-2 12:41
新米
居住地:
投稿: 10
使用環境:
WinXP,Flash CS3
コンパイルエラー「1023:オーバーライドできません」について
お世話になっております。
pointクラスを継承したクラスでプロパティxを取得するときに
処理を実行するためgetを使おうと考えたのですが、
「1023:オーバーライドできません」とコンパイルエラーがでてしまいます。
簡易スクリプトを作ってみましたが、同様の結果になってしまいました。やはりできないのでしょか?

//以下 test.as
package{
	import flash.geom.Point;

	public class test extends Point{
		public function test(){}

		public override function get x():Number{
			var t =5;//実際はここで処理をおこなう
			return t;
		}
	}
}
ひろゆき
Åê¹ÆNo.43582
投稿日時: 2009-10-2 13:05
ちょんまげら
居住地: 大阪密林
投稿: 3492
使用環境:
10.3.9
Flex 2 SDK

Pro8.0
Pro7.2
FlashPlayer
7.0r24/8.0r24/9.0r115
Safari 1.3.2
Firefox 2.0.0.20

MacOS 9.2.2
Flash 4/5
Re: コンパイルエラー「1023:オーバーライドできません」について
CSS適用でロールオーバー時に文字の折り返しがずれる
が放置されたままになっているようですが。
#ご自分が投稿された記事は、ログインして「アカウント情報」で確認できます。

あるメソッドをオーバライドするためには、そのスーパークラスのメソッドに
修飾子「override」がついている必要があります。

BeInteractive! [function]」が参考になるでしょうか。


----------------
質問する際は、回答者に具体的な情報を与えてくださいなのニャ!

野中文雄
Åê¹ÆNo.43583
投稿日時: 2009-10-2 14:12
ちょんまげら
居住地: 東京
投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: コンパイルエラー「1023:オーバーライドできません」について
[ヘルプ]を文面どおりとらえるかぎり、Point.xはインスタンスプロパティです。「varまたはconstで宣言されたプロパティをオーバーライドすることはできません」(Flash CS4 Professional[ヘルプ]の[ActionScript 3.0言語およびコンポーネントリファレンス] > [ステートメント、キーワード、ディレクティブ]の「override属性キーワード」)

たとえば、Point.lengthプロパティでしたら、getアクセサメソッドとして実装が「public function get length():Number」と明記されているので、オーバーライドすることもできます。
package {
	import flash.geom.Point;

	public class test extends Point {
		public function test() {}

		// public override function get x():Number {
		public override function get length():Number {
			var t = 5;//実際はここで処理をおこなう
			return t;
		}
	}
}

引用:
youhey535さんは書きました:
pointクラスを継承したクラスでプロパティxを取得するときに
処理を実行するためgetを使おうと考えたのですが、
「1023:オーバーライドできません」とコンパイルエラーがでてしまいます。


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

youhey535
Åê¹ÆNo.43585
投稿日時: 2009-10-2 15:01
新米
居住地:
投稿: 10
使用環境:
WinXP,Flash CS3
Re: コンパイルエラー「1023:オーバーライドできません」について
>ひろゆきさん
お返事が遅くなってしまい申し訳ありませんでした。

>野中文雄さん
そうなんですね。
オーバーライドできるものとできないものの違いを理解することができました。

ありがとうございました。

野中文雄
Åê¹ÆNo.43586
投稿日時: 2009-10-2 15:07
ちょんまげら
居住地: 東京
投稿: 4166
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: コンパイルエラー「1023:オーバーライドできません」について
幸いPointクラスは自身のプロパティ・メソッド数が少ないですから、カスタムクラスのプロパティにPointインスタンスをもたせ、プロパティやメソッドをラップすることは可能に思えます。いわゆる「コンポジション」というデザインになるでしょうか。
package {
	import flash.geom.Point;
	public class test {
		private var _point:Point;
		public function test(x:Number = 0, y:Number = 0) {
			point = new Point(x, y);
		}
		private function get point():Point {
			return _point;
		}
		private function set point(myPoint:Point):void {
			_point = myPoint;
		}
		public function get x():Number {
			var t = 5;  //実際はここで処理をおこなう
			return t;
		}
		public function get length():Number {
			return point.length;
		}
		public function add(secondPoint:Point):test {
			var myTest:test = new test();
			myTest.point = point.add(secondPoint);
			return myTest;
		}
		public function toString():String {
			return point.toString();
		}
	}
}


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

youhey535
Åê¹ÆNo.43588
投稿日時: 2009-10-2 15:34
新米
居住地:
投稿: 10
使用環境:
WinXP,Flash CS3
Re: コンパイルエラー「1023:オーバーライドできません」について
なるほどそういう方法があるのですので。
しかし、今回は外部ライブラリのメソッドのパラメータの型がPointになっていて
コンパイルエラーなってしまうため、pointクラスを継承しようと考えてました。
説明不足で申し訳ありませんでした。
test.swf

import test;
import someLibrary;

var t = new test();

someLibrary.someMethod(t);


someLibrary.as

 class someLibrary{
 
  function someLibrary(){}
 
  function someMethod(p:Point){

 }

}


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

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