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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ScrollPaneリサイズ
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
future
Åê¹ÆNo.11698
投稿日時: 2004-10-22 10:35
新米
居住地: 冥王星
投稿: 18
使用環境:
ScrollPaneリサイズ
ScrollPaneのサイズをウィンドウの大きさに連動させたいんですが、スクロールバーを動作させるやり方が分かりません。

map(MovieClip)をリンケージプロパティでActionScriptに書き出し
ステージにScrollPaneを配置
インスタンス名=myScrollPane
Scroll Content=map
Drag Content=false

フレームに以下のスクリプト

this.stop();
Stage.align="TL";
Stage.scaleMode="noScale";
this.onEnterFrame=function(){
   myScrollPane.setSize(Stage.width, Stage.height);
}


プロパティでDrag Content=trueにするとmapはドラッグによるスクロールは出来ます。
しかし、スクロールバーで操作することが出来ません。

どうすればいいでしょうか。
野中文雄
Åê¹ÆNo.11699
投稿日時: 2004-10-22 11:02
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ScrollPaneリサイズ
私の環境では、できていますよ。Safari+Flash Player 7.0r24/Mac OS X.3.5です。もちろん、ウィンドウサイズが写真より大きければ、使えませんが。
引用:
futureさんは書きました:
プロパティでDrag Content=trueにするとmapはドラッグによるスクロールは出来ます。
しかし、スクロールバーで操作することが出来ません。

以下のスクリプトの処理内容なら、MovieClip.onEnterFrameでなく、Stage.onResizeメソッドで扱ってもよさそうな気がします。

参考: F-siteセミナー「Flashインターフェイス大分析!
this.stop();
Stage.align="TL";
Stage.scaleMode="noScale";
this.onEnterFrame=function(){
   myScrollPane.setSize(Stage.width, Stage.height);
}


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

future
Åê¹ÆNo.11726
投稿日時: 2004-10-23 11:59
新米
居住地: 冥王星
投稿: 18
使用環境:
Re: ScrollPaneリサイズ
自分はIEですが、環境によって違うんですね。
教えていただいたStage.onResizeメソッドを使って動作することが出来ました!ありがとうございます。

そこで今度はscrollPaneの中のコンテンツを外部からloadMovieしようとしました。

myScrollPane.setSize(Stage.width, Stage.height);
resizer=new Object();
resizer.onResize=function(){
	myScrollPane.setSize(Stage.width, Stage.height);
}
Stage.addListener(resizer);
loadMovie("contents.swf",map);


外部コンテンツは表示されるんですが、scrollPaneが動作しなくなります(スクロールバーさえ出てこなくなります)。なにか解決方法はありますでしょうか。

おそらくコンポーネントを編集しないといけない気がするので、調べてみます。(自分の知識では無理っぽいですが)
検索してみると海外のフォーラムでも同じ質問がありましたが、返信がありません。
野中文雄
Åê¹ÆNo.11731
投稿日時: 2004-10-23 16:03
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ScrollPaneリサイズ
Internet Explorer 6.0+Flash Player 7.0r19/Windows XP Professional (SP1)で確認してみました。やはり操作は可能です。もしかすると、「スクロールバーの操作」といわれている意味が、異なるのでしょうか?
引用:
futureさんは書きました:
自分はIEですが、環境によって違うんですね。

外部SWFをロードするというのは、仕様上何か変更の必要があってですか? もし、今回の問題の解決のためでしたら、当初のムービー内容で原因を追及することをお勧めします。

外部SWFをロードすることは、スクリプトもより複雑になり、制御すべき要素が増える結果となります。また、当初の問題も、外部SWFのロードで解消しない可能性があります。
引用:
そこで今度はscrollPaneの中のコンテンツを外部からloadMovieしようとしました。

mapは、「インスタンス名」ですか? シンボルのリンケージ[識別子]は、loadMovie()関数のターゲットとして指定できません。インスタンスmapが存在しなければ、スクリプトを記述したタイムラインがターゲットとして認識されます。したがって、ScrollPaneインスタンスを含むMovieClipの内容がすべてクリアされ、そこに外部SWFがロードされる結果になるはずです。
引用:
myScrollPane.setSize(Stage.width, Stage.height);
resizer=new Object();
resizer.onResize=function(){
	myScrollPane.setSize(Stage.width, Stage.height);
}
Stage.addListener(resizer);
loadMovie("contents.swf",map);

外部コンテンツは表示されるんですが、scrollPaneが動作しなくなります(スクロールバーさえ出てこなくなります)。なにか解決方法はありますでしょうか。

ScrollPaneインスタンスに外部SWFをロードするには、FScrollPane.loadScrollContent()メソッドを使用します。


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

future
Åê¹ÆNo.11750
投稿日時: 2004-10-25 12:48
新米
居住地: 冥王星
投稿: 18
使用環境:
Re: ScrollPaneリサイズ
たしかにこの部分は動作しますね!自分が操作といったのはここで、onEnterFrameなのが原因だと思います。

引用:
外部SWFをロードするというのは、仕様上何か変更の必要があってですか?
今はただ試している段階なのですが、Flashだけですっきりと見せることができるものを作ってみたいのです・・・。

引用:
シンボルのリンケージ[識別子]は、loadMovie()関数のターゲットとして指定できません。インスタンスmapが存在しなければ、スクリプトを記述したタイムラインがターゲットとして認識されます。したがって、ScrollPaneインスタンスを含むMovieClipの内容がすべてクリアされ、そこに外部SWFがロードされる結果になるはずです。
分かりやすいご指摘ありがとうございます。一応ステージにmapを配置して(インスタンス名:map)みたりしましたが結果は同じでした。(下のアドバイスによりFScrollPane.setScrollContent()メソッドを使うことが分かりました)

引用:
ScrollPaneインスタンスに外部SWFをロードするには、FScrollPane.loadScrollContent()メソッドを使用します。
アドバイスのおかげで希望の動作が出来ました!本当にありがとうございます。
FScrollPaneの機能を使えばいろいろ出来そうです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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