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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     AS2.0の記述を3.0に変更したい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
Åê¹ÆNo.40829
投稿日時: 2008-11-24 12:24
AS2.0の記述を3.0に変更したい
はじめまして。AS2.0を3.0にする方法で困っています。

http://hakuhin.hp.infoseek.co.jp/main/as/scroll.html#SCROLL_01

上記URLの【マウスでスクロールするマップ】のような事をしたいのですが、サンプルがAS2.0なので3.0に直さないといけません。(コンテンツはAS3.0で作っているので)

サンプルのコードを示しますと…

(スクロールする背景のオブジェクトに下記のASを記述)
onClipEvent (load) {

MapWidth = 800; // マップの横幅
MapHeight = 400; // マップの縦幅
MapSpeed = 5; // マップの移動速度

FlashWidth = 400; // Flashの縦幅
FlashHeight = 300; // Flashの横幅

}
onClipEvent (enterFrame) {

// x方向移動量
_root.map._x += ((FlashWidth - _root._xmouse) / FlashWidth * 2 - 1) * MapSpeed;
// y方向移動量
_root.map._y += ((FlashHeight - _root._ymouse) / FlashHeight * 2 - 1) * MapSpeed;


// リミッタ
if( _root.map._x > 0) _root.map._x = 0;
if( _root.map._y > 0) _root.map._y = 0;
if( _root.map._x < -(MapWidth - FlashWidth )) _root.map._x = -(MapWidth - FlashWidth);
if( _root.map._y < -(MapHeight - FlashHeight )) _root.map._y = -(MapHeight - FlashHeight);

}

※よくわからない点
onClipEvent (load)はAS3.0で記述するにはどうすればいいのですか?addEventListenerのイベントでloadとかないのでどうすればいいのか…

※やりたい事
マウスが左右に振れるほど加速し、動きが止まる時は減速して止まる。そんな事をしたいと思っているのですが、何かご意見を頂けたら嬉しいです。
ゲスト
Åê¹ÆNo.40830
投稿日時: 2008-11-24 13:11
Re: AS2.0の記述を3.0に変更したい
いろいろ調べてやってみたのですがエラーがでます↓

1120: 未定義のプロパティ FlashWidth へのアクセスです。
1120: 未定義のプロパティ FlashWidth へのアクセスです。
1120: 未定義のプロパティ MapSpeed へのアクセスです。
1120: 未定義のプロパティ MapWidth へのアクセスです。
1120: 未定義のプロパティ FlashWidth へのアクセスです。
1120: 未定義のプロパティ MapWidth へのアクセスです。
1120: 未定義のプロパティ FlashWidth へのアクセスです。
1120: 未定義のプロパティ MapHeight へのアクセスです。
1120: 未定義のプロパティ FlashHeight へのアクセスです。
1120: 未定義のプロパティ MapHeight へのアクセスです。
1120: 未定義のプロパティ FlashHeight へのアクセスです。



【試したコード】

var BgObj:Bg=new Bg();
BgObj.x=0;
BgObj.y=0;
addChild(BgObj);

addEventListener(Event.ADDED,BgIvt);

function BgIvt(event:Event):void{
var MapWidth:int = 800; // マップの横幅
var MapHeight:int = 400; // マップの縦幅
var MapSpeed:int = 5; // マップの移動速度

var FlashWidth:int = 400; // Flashの縦幅
var FlashHeight:int = 300; // Flashの横幅

}
addEventListener(Event.ENTER_FRAME,BgIvt2);

function BgIvt2(event:Event){

// x方向移動量
MovieClip(root).BgObj.x += ((FlashWidth -

MovieClip(root).mouseX) / FlashWidth * 2 - 1) * MapSpeed;


// リミッタ
if(MovieClip(root).BgObj.x > 0) MovieClip(root).BgObj.x = 0;
if( MovieClip(root).BgObj.y > 0) MovieClip(root).BgObj.y = 0;
if( MovieClip(root).BgObj.x < -(MapWidth - FlashWidth )) MovieClip(root).BgObj.x = -(MapWidth - FlashWidth);
if( MovieClip(root).BgObj.y < -(MapHeight - FlashHeight )) MovieClip(root).BgObj.y = -(MapHeight - FlashHeight);

}
お手数ですが皆様よろしくお願いします。
あにぃ
Åê¹ÆNo.40832
投稿日時: 2008-11-24 15:29
職人
居住地: 北海道
投稿: 250
使用環境:
Flash8
FlashCS3
WinXP
FlashLite1.1 / 2.0
Re: AS2.0の記述を3.0に変更したい

var MapWidth:int = 800;// マップの横幅
var MapHeight:int = 400;// マップの縦幅
var MapSpeed:int = 5;// マップの移動速度

var FlashWidth:int = 400;// Flashの縦幅
var FlashHeight:int = 300;// Flashの横幅
map.addEventListener(Event.ENTER_FRAME,BgIvt2);

function BgIvt2(event:Event) {
	// x方向移動量
	this.x += ((FlashWidth-root.mouseX)/FlashWidth*2-1)*MapSpeed;
	// y方向移動量
	this.y += ((FlashHeight-root.mouseY)/FlashHeight*2-1)*MapSpeed;
	trace(this.x);
	// リミッタ
	if (this.x>0) {
		this.x = 0;
	}
	if (this.y>0) {
		this.y = 0;
	}
	if (this.x<(FlashWidth-MapWidth)) {
		this.x = (FlashWidth-MapWidth);
	}
	if (this.y<(FlashHeight-MapHeight)) {
		this.y = (FlashHeight-MapHeight);
	}
}

2.0の物をそのまま3.0として扱うのであれば、こんな感じでも充分な気がします。

loadに記述してあるのは、MovieClip読み込み時に処理なのですが、今回は初期設定みたいなので、loadじゃなくてもタイムラインに書けば問題ないと思います。


----------------
質問する際には、ご自分でできる限り調べてから投稿して下さい

P・S 職人おめでとう。(08/10/09)

ゲスト
Åê¹ÆNo.40834
投稿日時: 2008-11-24 17:00
Re: AS2.0の記述を3.0に変更したい
職人おめでとう。さん返信ありがとうございます。

さっそく試してみました!
エラーはなくなりました。ありがとうございます。
しかし、うまく左右の切り替えができませんでした。
右端に行った時に、左方向へ切り返すのが無理でした。

後、実際に作る時は移動する背景の大きさは3000px、ステージの横幅は800くらいのもので考えています。縦は400くらい。

その値を入力すると右にだけドーンとオブジェクトが伸びて、右方向にしか移動しなくなります。

いろいろ調べてはいるのですがASの習熟度がそこまで高くないので、なかなか解決することができません。

お手数ですが、よろしくお願いします。
ゲスト
Åê¹ÆNo.40837
投稿日時: 2008-11-24 20:18
Re: AS2.0の記述を3.0に変更したい
別の方法で満足ではないですが、近いものができました。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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