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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     Papervison3Dとブラウザの拡大表示
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tamachan55
Åê¹ÆNo.46068
投稿日時: 2010-10-13 1:09
半人前
居住地:
投稿: 44
使用環境:
Win7,Flash CS4,
Papervison3Dとブラウザの拡大表示
連投気味だったので暫くは質問を控えようと思ったのですが
致命的なミスが見つかったので、止むを得ず投稿しました。

制作をしたムービーをswfとhtmlでパブリッシュしてブラウザ(IE8)で再生すると、100%表示では問題無いのですが
125%等の拡大表示をすると、ドキュメントクラスを使ったムービーに限って、ドキュメントクラスで設定したMovieClipがflaのフレームに配置した画像よりも大きく拡大され再生範囲がずれてしまいます。

先の「ドキュメントクラス使用のムービーにプログレスバーを付けるには?」で提示したものも同様です。

flaのフレームアクションだけで制作したものは、ブラウザの拡大とともに
ムービーも正確に拡大します。

パブリッシュ設定をいろいろ変えてみましたが解決しません。
よろしければ解決策のご教授願います
ひろゆき
Åê¹ÆNo.46071
投稿日時: 2010-10-13 10:06
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ドキュメントクラスとブラウザの拡大表示
1. 何をどう設定しているのか、あるいは、ドキュメントクラス自体も具体的に示されていない。

2. この問題に絞ったflaファイルを別途作成し、それを元に検証していない。

よって、何が原因で、どう問題なのか、第三者には分かりようがありません。
ちゃんと設定して、ちゃんとドキュメントクラスを書けば、
なさろうとしていることはできます。としかレスのつけようがありません。

何か設定したら、思うようになりません」とおっしゃっているにすぎません。


問題の原因を究明するのであれば、
今回の問題とは関係のないと思われる要素を排除して、
シンプルなものを作成たうえで、原因を絞り込む
べきでしょう。

少なくとも、制作中のものは一旦棚上げにする必要があるでしょう。

第三者が再現できるようなものでなければ、検証のしようがありません。
問題のflaファイルをどこかに上げて、回答者が確認できるようにするとか。


また、「ブラウザ(IE8)で再生すると」と書かれてしまうと、
IE8で問題が発生して、他のブラウザでは発生しないとも読み取れます。
「ブラウザ(IE8)で確認したところ」とか「他のブラウザでは確認していませんが」
などとする方が良いのでは?

「連続投稿」すること自体に問題があるのではなく、
分からないまま、見よう見まねで、一度に複数のことをなさって、
かえって混乱を招いているのではないかと思います。



なお、ブラウザ・サイズに合わせたコンテンツの制作には、
ScaleModeやブラウザ・リサイズに関する知識が必要に思われます。

Stage.scaleModeの値」(AS2.0)
[AS3.0] リサイズで変動・固定


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

tamachan55
Åê¹ÆNo.46075
投稿日時: 2010-10-13 14:44
半人前
居住地:
投稿: 44
使用環境:
Win7,Flash CS4,
Re: ドキュメントクラスとブラウザの拡大表示
返信ありがとうございます。
引用:

mayorさんは書きました:

シンプルなものを作成したうえで、原因を絞り込むべきでしょう。



全くおっしゃるとおりですが、今回の件もプログレスバーの件も
シンプルなものでは、なんとか問題なく出来て、ドキュメントクラス使用のもの、特にPapervision3Dを使用したものが上手く行きません。ScaleModeもいろいろ試しましたが、プログレスバーの時と同様に「1180 addFrameScript の呼び出しエラー」が出ます。
このトピックのブラウザの表示サイズ問題はTweenerやTweensy使用のものでも、問題ありませんでした。

恐らくPapervision3Dだけで解決すべき問題なんだろうと、考え直し、そちらを調査中です。

現在判明中なのはPapervisionにも
public class FileLoadEventやSceneクラスというのがあるようなので、このあたりを勉強すれば解決するかも?と思っています。

前回と重複しますが該当するコードを記しておきます。

1、earthmoveという名のflaファイルを作成
2、1のステージ(レイヤー1)に宇宙の画像を配置
3、1のパブリッシュ設定でPapervision3dの入ったフォルダーをソースパス指定する
4、1のクラス指定を6で作るEarthmoveと指定する
5、1のライブラリに地球の画像を取り込み”Earth"とリンケージ指定する
6、Earthmoveという名のasファイルを作成し以下のコードを書く


package {

	import flash.ui.Keyboard;
	import flash.events.*;
		
	import org.papervision3d.view.*;
	import org.papervision3d.materials.*;
	import org.papervision3d.objects.primitives.*;
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.cameras.Camera3D;
	import org.papervision3d.render.BasicRenderEngine;

	public class Earthmove extends BasicView {
		
		private var r:Number=0;
		var degrees_int:int=60;//角度
	
		public function Earthmove() {
			
			 super( 700, 400, true, true );

			var centerx_int:int=0;//中心x座標(0がStage上中心)
			var centerz_int:int=0;//中心z座標
			var diameter_int:int=2000;//半径
			var speed_int:int=1;//毎回の移動角度


			//地球
			var material:BitmapAssetMaterial=new BitmapAssetMaterial('Earth');
			var sphere:Sphere=new Sphere(material,100,30,30);
			sphere.useOwnContainer=true;
			addEventListener(Event.ENTER_FRAME, function(d){  ;


			sphere.x = Math.sin(degrees_int * Math.PI/180) * diameter_int + centerx_int;
			sphere.z = Math.cos(degrees_int * Math.PI/180) * diameter_int + centerz_int;
			degrees_int += speed_int;
			degrees_int %= 360;//360以上になった場合に0?へ戻す
		}
		)
		scene.addChild(sphere);
		startRendering();

		// 球面を回転させる  

		addEventListener(Event.ENTER_FRAME, function(e){  ;
		sphere.rotationY += 4;

	}
	)
	camera.focus=500;
	camera.zoom=3;
	camera.x=0;
	camera.y=0;
	camera.z=-8000;
	stage.addEventListener(KeyboardEvent.KEY_DOWN,keyboardDownEvent);

	startRendering();
}
//キーボードのKeyDownイベント処理
private function keyboardDownEvent(event:KeyboardEvent):void {
	switch (event.keyCode) {
		case 39 :
			//→キー
			camera.y+=100;
			break;
		case 37 :
			//←キー
			camera.y-=100;
			break;
		case 38 :
			//↑キー
			camera.z+=100;
			break;
		case 40 :
			//↓キー
			camera.z-=100;
			break;
	}
	}

}
}
ひろゆき
Åê¹ÆNo.46078
投稿日時: 2010-10-13 15:08
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ドキュメントクラスとブラウザの拡大表示
あてずっぽうにやっても解決しません。

前回のスレッドをお読みになっておられないのでしょうか?
再度掲載しましょうか。

引用:
BasicViewは、Spriteを継承しているので、Papervision3Dを用いるのであれば、
以下の2つの方法のいずれかではないでしょうか。
# 他の方法もあると思いますが、難易度が高いと思われるので、割愛します。

(1) Papervision3Dを用いたSWFを外部SWFとして読み込む。(1フレーム構成)

(2) BasicViewを継承するようなドキュメントクラスを用いるのではなく、
 MovieClipを継承するドキュメントクラスを指定する。

 ただし、BasicViewを用いないので、Papervision3Dのためのスクリプトは「当然」長くなる。
 BasicViewを用いない例 「星と空間 (フルスクリーン)

 また、MovieClip上のタイムライン制御を行わなければならない。(2フレーム構成)



基礎固めをしないまま、難易度の高いことをしようとしても、乗り越えられないように思います。

Papervision3Dを一旦棚上げにして
プログレスバーについて学習するなり、
ドキュメントクラスを用いてフレーム移動することについて学習する必要があるように思いますが、
どうしても、Papervision3Dに固執されるのであれば、(1)の方をお勧めします。

せめて「エラー」の原因くらいは、理解しようとされた方が良いのでは?
trick7 - ドキュメントクラスが extends Sprite の時

そもそも、flaファイルを2フレーム以上にする必要はないのでは?
BasicViewを継承するのであれば、flaファイルを1フレームのみで構成するようにしては?


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

vader
Åê¹ÆNo.46082
投稿日時: 2010-10-13 16:28
常連
居住地: 東京
投稿: 76
使用環境:
MacOS10.8,FlashCS6
Re: ドキュメントクラスとブラウザの拡大表示
tamachan55さん、こんにちわ。

ちょっと状況がよく解らないので、以下あやしいと思う点です。

BasicViewのコンストラクタの第3引数(scaleToStage)をtrueにした場合、
Papervision3Dから、stageのプロパティが以下のように変更されます。

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

これが直接の原因かは断定できませんが、試しに第3引数をfalseに
してみては如何ですか?

>現在判明中なのはPapervisionにも
>public class FileLoadEventやSceneクラスというのがあるようなので、
>このあたりを勉強すれば解決するかも?と思っています。

BitmapAssetMaterialを使用しているのであれば、FileLoadEventは、
関係ないと思います。
SceneクラスはScene3Dクラスのことだと思いますが、こちらも概念的な
3D空間なので、おそらく関係ないと思われます。

以上、頑張って下さい。
tamachan55
Åê¹ÆNo.46083
投稿日時: 2010-10-13 16:45
半人前
居住地:
投稿: 44
使用環境:
Win7,Flash CS4,
Re: ドキュメントクラスとブラウザの拡大表示
返信ありがとうございます。
表示問題(MovieClipだけが大きくなる)は解決しました。
vaderさんのご指摘の箇所だと思いますがコンスタラクタの直後に

super( 700,700, false,true);

と入れたら改善できました。
カメラタイプは何故かエラーが出るしデフォルトで良いので省略しました。

http://papervision3d-jp.googlecode.com/svn/trunk/docs/index.html

Parameters viewportWidth:Number (default = 640) — ビューポートの幅です。

viewportHeight:Number (default = 480) — ビューポートの高さです。

scaleToStage:Boolean (default = true) — ビューポートをステージに合わせるかどうかのフラグです。

interactive:Boolean (default = false) — シーンがインタラクティブかどうかの設定です。3Dオブジェクトにマウスイベントを登録する場合は、trueを設定します。

cameraType:String (default = "Target") — カメラのタイプを指定します。

FileLoadEventは別件のプログレスバーで使えるかな?と思ったので
当トピックとは関係ありませんでした。
申し訳ありません。



しかし、ひろゆきさんのおっしゃるように
私のような初心者は
基本の3Dから勉強するべきでしょうね

ひろゆきさんの「星と空間 (フルスクリーン)」
のような3Dを基本のクラスだけでも作れるように
勉強したいと思います
ひろゆき
Åê¹ÆNo.46088
投稿日時: 2010-10-13 18:10
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ドキュメントクラスとブラウザの拡大表示
Papervision3D以前に、ドキュメントクラスを用いることから学習すべきだと思いますね。

例えば、main.fla のドキュメントクラスを「Main」とする。

Main.as
package {

	import flash.display.Sprite;

	public class Main extends Sprite {

		public function Main() {
			init();
		}

		private function init():void {
			graphics.beginFill(0xFF0000);
			graphics.drawRect(0, 0, 465, 465);
			graphics.endFill();
		}
		
	}

}

これで、パブリッシュしても、エラーは出ませんが、
main.flaの第1フレームに、
stop();
と記述するだけで、エラーが出るはずです。

このあたりのことを理解されることが先ではないでしょうか。


説明されていること以外に、スクリプトを記述していなければ、
Papervision3Dを用いようと、ウィンドウ・リサイズに対応しようと、
以下のいずれの場合も、何らエラーは出ません。
Earth (1)」「Earth (2)」「Earth (3)」「Earth (4)


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

tamachan55
Åê¹ÆNo.46094
投稿日時: 2010-10-13 21:20
半人前
居住地:
投稿: 44
使用環境:
Win7,Flash CS4,
Re: ドキュメントクラスとブラウザの拡大表示
ひろゆきさん返信ありがとうございます。

ドキュメントクラスとタイムラインの関係は別トピックで拝見しました。
地球ムービーのリンクも4つとも拝見しました。
ここで謝っておかなければいけないのは、私の説明が下手で
何をどうしたいのか、伝えられてなかった事です。

言い方を変えると「flaに配置した背景画像(jpg)はウインドウの表示サイズ拡大に伴わず、地球ムービーだけが拡大してしまう。」とでも言うべきものでした。
背景画像はステージに配置しただけなので、当たり前ですが・・・
下のレスで私が解決したと言ったのはウインドウ画面が拡大しても
ムービーサイズを固定する(拡大しない)事で解決にしたのですが、反対に言えば
背景画像をウインドウとムービーの拡大に連動させる事も考えるべきでした。
背景をライブラリに読み込み、スクリプトでaddChildさせれば良かったのかもしれません。

4つの違う手法の例は短時間では理解できそうにないので
ゆっくり勉強させていただきます。

ありがとうございました。
ひろゆき
Åê¹ÆNo.46096
投稿日時: 2010-10-13 22:19
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ドキュメントクラスとブラウザの拡大表示
「どうしたいのか、明確にした方が良さそうに思います。

背景画像(back)とPapervision3Dで描いた地球(earth)があることは分かりました。

さて、ウィンドウの拡大縮小に応じて、
拡大縮小させたいものはどれで、拡大縮小させたくないものはどれなのでしょう?


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

tamachan55
Åê¹ÆNo.46097
投稿日時: 2010-10-13 22:38
半人前
居住地:
投稿: 44
使用環境:
Win7,Flash CS4,
Re: ドキュメントクラスとブラウザの拡大表示
返信ありがとうございます。
わかりづらくて申し訳ありませんでした。

今までの問題は、
ウインドウを拡大すると

backはそのままで、earthは拡大 でした。

そこで(scaleToStage)をfalseにして
backはそのままで、earthもそのまま で一応の解決としました。

しかし欲を言えば
backも拡大で、earthも拡大 にしたい

という状態です。
そのためには、やはりbackはステージ(レイヤーフレーム)に置かずに
スクリプトで設定すべきだったのでしょうか?

http://www.trick7.com/blog/2008/01/17-211734.php
↑ここにもクラスがSpriteを継承した場合は
フレームスクリプトは空にと書いてありますが。

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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