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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     AS3.0 外部SWF読み込み後 停止しておきたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Takamoku
Åê¹ÆNo.42446
投稿日時: 2009-5-30 15:48
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
AS3.0 外部SWF読み込み後 停止しておきたい
package {
  private var movieContainer:Sprite;
  private var loaderObj:Loader;
    
  private function loadInit ():void {
    movieContainer = new Sprite ();
    loaderObj = new Loader();

    var url = new URLRequest("test.swf");
    loaderObj.load (url);
    loaderObj.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoadedSWF);
    loaderObj.contentLoaderInfo.addEventListener (ProgressEvent.PROGRESS, onLoadingSWF);
      
    movieContainer.addChild (loaderObj);
  }

  private function onLoadedSWF (e:Event):void {
    movieContainer.addChild (loaderObj);
    MovieClip (loaderObj.content).stop ();
  }

  private function onLoadingSWF (e:ProgressEvent):void {
  }
}


test.swf をロード完了時 stop (); で停止しておくというものなのですが、
どうも2、3フレーム?進んだところで停止するような感じです。
1フレーム目で止めておきたいのですが

キャッシュをクリアした状態で再現されます。
リロードすると問題ないです。
stop のタイミングがおかしいでしょうか。。
お願いします。
hotxp
Åê¹ÆNo.42482
投稿日時: 2009-6-2 13:45
新米
居住地:
投稿: 1
使用環境:
Re: AS3.0 外部SWF読み込み後 停止しておきたい
ありがとうございます


----------------
無料 キーワード ツール

ひろゆき
Åê¹ÆNo.42484
投稿日時: 2009-6-2 15:16
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: AS3.0 外部SWF読み込み後 停止しておきたい
宣伝のためのスパム投稿と思われます。
アカウント削除をされた方がよろしいのでは?>モデレータ


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

Tonpoo (gaienboy改め)
Åê¹ÆNo.42487
投稿日時: 2009-6-3 12:01
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: AS3.0 外部SWF読み込み後 停止しておきたい
gaienboyです。スレッドの本題について。私の方でサンプルファイルを作り、外
部クラスではなくタイムラインに下記を直接記述したところ、特に問題なく作動し、
読み込んだtest.swfは1フレーム目で止まった状態になりました。

var movieContainer:Sprite = new Sprite ();
this.addChild(movieContainer);
var loaderObj:Loader = new Loader();
movieContainer.addChild (loaderObj);

var url = new URLRequest("test.swf");
loaderObj.load (url);
loaderObj.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoadedSWF);

function onLoadedSWF(e:Event):void{
	e.target.content.stop();
}


Takamokuさんのスクリプトと違う点というと、
(1)タイムラインに直接記述している
(2)loaderObjをmovieContainerにaddChildする回数を減らしている
(3)読み込んだtest.swfをstopさせる際の指定方法が違う(太文字部分)。
・・・といったところでしょうか。

これで解決するかどうかは自信ないですが、よかったら参考にしてみてください。


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

Takamoku
Åê¹ÆNo.42525
投稿日時: 2009-6-6 13:47
新米
居住地: 大阪
投稿: 27
使用環境:
Flash CS3
Flash 8 Pro
Flash MX 2004
Mac OS 10.5.7
Re: AS3.0 外部SWF読み込み後 停止しておきたい
なんとスパスが

gaienboy さまありがとうございます。
結果から申し上げて、解決策が見つかりましたのでご報告します。

まず addChild が2回あるのはこちらへ投稿時の記述ミスでした。すいません。
(打ち消し線で訂正済み)

gaienboy さまとまったく同じ記述でタイムラインで試したところ、やはりキャッシュクリア状態では2、3フレーム進んで停止しました。
(Mac Safari Frefox で確認)
ちなみに読み込んでいるSWFは読み込み元と同じ環境で作成、主にタイムラインで作られた15秒(150KB)ほどのムービーです。


以下、解決案です。
問題について検索し、リファレンスガイドにて initHandler() というメソッドがありました。

引用:
initHandler() メソッドは、completeHandler() メソッドの前、 かつ progressHandler() メソッドの後に実行されます。通常、SWF ファイルをロードする場合は init イベントの方が便利です。

もうこれを読んだ瞬間、「あ、これでいけるな 」と確信しました。


で、こうなりました↓

var movieContainer:Sprite = new Sprite ();
this.addChild(movieContainer);
var loaderObj:Loader = new Loader();
movieContainer.addChild (loaderObj);

var url = new URLRequest("test.swf");
loaderObj.load (url);
loaderObj.contentLoaderInfo.addEventListener (Event.COMPLETE, onLoadedSWF);
loaderObj.contentLoaderInfo.addEventListener(Event.INIT, initHandler);

function onLoadedSWF(e:Event):void{
	//e.target.content.stop();
}

function initHandler (e:Event):void {
	e.target.content.stop();
}

これだとクラスファイル内でもタイムラインでもちゃんと停止してくれました。
はー、良かったです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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