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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     onLoadが実行されない?
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Hamagon
Åê¹ÆNo.4596
投稿日時: 2004-3-5 22:47
新米
居住地:
投稿: 25
使用環境:
自作PC Athron1.3Ghz + 512M
WindowsXP
Flash MX
Flash Mx2004proffesional
onLoadが実行されない?
あるオブジェクトの1フレーム目に、以下のようなスクリプトを書きました。
非常に単純な、シンボルが左右に動くだけのものです。
-------------------------------------
onLoad = function()
{
trace("on Load実行");
movx = 8;
}

onEnterFrame = function()
{

if( this._x > 640 )
{
this._x = 640;
movx *= -1;
}
if( this._x < 0 )
{
this._x = 0;
movx *= -1;
}

this._x += movx;
}
-------------------------------------
しかし、onLoadの処理が実行されないのです。

onLoadはメモリ上にインスタンスが生成されたときに実行される、とマニュアルにあったので、初期化のような処理はここでやるのだと思ったのですが、根本的に間違えているのでしょうか?
野中文雄
Åê¹ÆNo.4597
投稿日時: 2004-3-5 23:04
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: onLoadが実行されない?
ご使用の環境は、プロフィールに記入しましょう。

「オブジェクト」というのは、MovieClipインスタンスのことですよね。第1フレームのスクリプトが処理されるときには、すでにインスタンスのロードは完了しています。
引用:
Hamagonさんは書きました:
あるオブジェクトの1フレーム目に、以下のようなスクリプトを書きました。
...
onLoad = function()
// [後略]

しかし、onLoadの処理が実行されないのです。

MovieClip.onLoadイベントハンドラメソッドは、シンボルにクラス定義をする場合に用いるのが本来の用途です(引用のログは長いスレッドで、いろいろ面白い議論が交わされています)。
引用:
onLoadはメモリ上にインスタンスが生成されたときに実行される、とマニュアルにあったので、初期化のような処理はここでやるのだと思ったのですが、根本的に間違えているのでしょうか?


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

Hamagon
Åê¹ÆNo.4599
投稿日時: 2004-3-6 0:52
新米
居住地:
投稿: 25
使用環境:
自作PC Athron1.3Ghz + 512M
WindowsXP
Flash MX
Flash Mx2004proffesional
Re: onLoadが実行されない?
情報有難うございました。プロフィールの件も指摘していただき、有難うございます。

>「オブジェクト」というのは、MovieClipインスタンスのことですよね。第1フレームのスクリプトが処理されるときには、すでにインスタンスのロードは完了しています

なるほど?、非常に納得です。

>MovieClip.onLoadイベントハンドラメソッドは、シンボルにクラス定義をする場合に用いるのが本来の用途です(引用のログは長いスレッドで、いろいろ面白い議論が交わされています)。

そうすると、毎フレーム実行される処理をonEnterframeに書いた場合、その中で使用する各変数の「初期化」はどのように行えばいいのでしょう?
野中文雄
Åê¹ÆNo.4600
投稿日時: 2004-3-6 1:04
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: onLoadが実行されない?
第1フレームアクションは、インスタンスがロードされて最初に実行されます。ですから、そこにべたっと書けば結構です。ループして戻るようなつくりのときは、ちょっと注意が必要になります。
// MovieClip
// 第1フレームアクション
trace("initialize "+this);
var movx = 8;
this.onEnterFrame = function() {
	if (this._x>640) {
		this._x = 640;
		movx *= -1;
	} else if (this._x<0) {
		this._x = 0;
		movx *= -1;
	}
	this._x += movx;
};

引用:
Hamagonさんは書きました:
そうすると、毎フレーム実行される処理をonEnterframeに書いた場合、その中で使用する各変数の「初期化」はどのように行えばいいのでしょう?


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

Hamagon
Åê¹ÆNo.4601
投稿日時: 2004-3-6 1:31
新米
居住地:
投稿: 25
使用環境:
自作PC Athron1.3Ghz + 512M
WindowsXP
Flash MX
Flash Mx2004proffesional
Re: onLoadが実行されない?
あー、そうか!
それで2フレーム目で
stop();
でとめておけば、あとはenterFrameの処理だけまわすことが出来るんですね

わかってみれば簡単なことですが、なれないとなかなか発想が浮かんでこないものですね
ていねいに教えていただき、有難うございました。
youich
Åê¹ÆNo.4606
投稿日時: 2004-3-6 1:54
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: onLoadが実行されない?
引用:

MovieClip.onLoadイベントハンドラメソッドは、シンボルにクラス定義をする場合に用いるのが本来の用途です(引用のログは長いスレッドで、いろいろ面白い議論が交わされています)。

今見ると、見事にスレッドぶちきってます>σ(^^
この時、ML時代に、よく話題になった”マナーを守れメール”をいただきました。


----------------
- yo

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

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