1

ローディング外部jpgジョブを実行するバックグラウンドシンボルと、画面上で2つのバックグラウンドを連続的に繰り返すエンジンas3があります。しかし、同じシンボルから「新しい」ものの、1つの背景だけがファイルを読み込むことができます。このurr ...現象をテストするために、私は2つの背景の "新しい"コードの順序を交換します。そして、上の方がjpgファイルを完全にロードし、もう一方は空白のままにします。 誰もこの問題に直面していますか?またはそれを解決する方法を知っていますか? plz教えてください。この外部負荷は最初から私には本当に痛いものです。同じことを2回ロードするローダーでのデューキングの問題

背景コード

var URLvar:URLRequest; 
var fBGLoader : Loader = new Loader(); 
URLvar = new URLRequest("background collection/fyrise/fyriseFront.png"); 
fBGLoader.load(URLvar); 
this.addChild(fBGLoader); 

エンジンコード

private var B1:fBG; 
private var B2:fBG; 
private var Container= new MovieClip(); 
BLen=2500; 
B2=new fBG(); 
B1=new fBG(); 

B1.x=0; 
B1.y=0; 
B2.x=B1.x-BLen; 
B2.y= B1.y; 
Container.addChild(B1); 
Container.addChild(B2); 
stage.addChild(Container); 

;(不便をおかけして申し訳ありません、私が、私はそれを無視できると思います非常に非常に基本的である理由):コードの場合

あなたが見ることができるように、私はB2 = new fBG()をB1 = new fBG()の前に置き、次にB2を見ることはできますが、B1を見ることはできません。それが問題です!

+0

T_Tとは何ですか?関連するコードを追加してください。そうでなければ、その問題を推測することは困難です。 – taskinoor

+0

ロードしてループするために使用しているコードの塊を投稿できますか? – Corey

+0

@ taskinoor T_Tは笑顔です –

答えて

1

イメージを2回または1回ロードしていますか?イメージを一度ロードして両方のfBGオブジェクトに使用すると、ビットマップオブジェクトは1つの親しか持てないので問題が発生します(最後のaddChild(fBGLoader)は唯一の働きをします。最初のものは後のものによって取り消されます) )。

これを修正するには、両方のfBGオブジェクトが独自のBitmapインスタンスを持っていることを確認する必要があります(ただし、同じBitmapDataを共有できます)。あなたがやっているところはどこでもそう:

this.addChild(fBGLoader); 

ではなく、これを実行します。

var img : Bitmap = Bitmap(fBGLoader.content); 
this.addChild(new Bitmap(img.bitmapData)); 

をこれは、各FBGのオブジェクトは、背景画像を表示するための座標情報のそれ自身のセットを持っていることを確認します。

+0

Loaderクラスを使用してイメージを読み込む場合、BitmapまたはBitmapDataクラス/オブジェクトを混乱させる必要はありません。 – pkyeck

+0

ありがとうございます。TypeError:Error#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。 –

+0

申し訳ありませんが、コードを間違えました。ローダーではなく、型キャストする必要があるローダーの内容です。私は答えを更新します – Godfather

0

私はwonderflで小さな例をオーバーまとめ:http://wonderfl.net/c/1dze

を私は試してみて、ロード同じ画像を二回 - そしてそれは動作します。コードは次のとおりです。

package { 
    import flash.net.URLRequest; 
    import flash.display.Loader; 
    import flash.display.Sprite; 
    public class FlashTest extends Sprite { 

    private var loader1:Loader; 
    private var loader2:Loader; 

    public function FlashTest() { 
     loader1 = new Loader(); 
     loader2 = new Loader(); 
     loader2.x = 40; 
     loader2.y = 40; 

     loader1.load(new URLRequest("http://4.bp.blogspot.com/_zqzgnaU9IiE/TIuSdJyuWsI/AAAAAAAAAA0/4qVZxO503vE/s1600/fat+cat.jpg")); 
     loader2.load(new URLRequest("http://4.bp.blogspot.com/_zqzgnaU9IiE/TIuSdJyuWsI/AAAAAAAAAA0/4qVZxO503vE/s1600/fat+cat.jpg")); 
     addChild(loader1); 
     addChild(loader2); 
    } 
    } 
} 

問題はコード内の別の場所にある必要があります。

多分、上記のコードのように、両方が読み込まれているかどうかを確認するために、ムービークリップの位置を変更してみてください。あなたもそうのような二つのクラスにこれを入れることができ

編集

package { 
    import flash.display.Sprite; 

    public class FlashTest extends Sprite { 
    private var bgLoader1:BGLoader; 
    private var bgLoader2:BGLoader; 

    public function FlashTest() { 
     bgLoader1 = new BGLoader(); 
     bgLoader2 = new BGLoader(); 
     bgLoader2.x = 40; 
     bgLoader2.y = 40; 
     addChild(bgLoader1); 
     addChild(bgLoader2); 
    } 
    } 
} 

、その後

package { 
    import flash.display.Loader; 
    import flash.display.Sprite; 

    public class BGLoader extends Sprite { 
    private var loader:Loader; 
    public function BGLoader() { 
     loader = new Loader(); 
     loader.load("URLTOIMAGE"); 
     addChild(loader); 
    } 
    } 
} 
+0

yup、これは2台のローダーを持っているので動作しますが、バックグラウンドシンボルには1台しかありません。私はメインのASでこのシンボルを2回だけ新しくしました。そして、それはバックグラウンドシンボルの中にロードコードを複製することはできません。ありがとう、おそらく私は良い2つの新しいコードの2 2シンボルを作っている。 T_T –

+0

あなたは2つのローダーを持っています... :( – pkyeck

+0

??私はバックグラウンドコードで1つしか持っていません:fBGLoader.load(URLvar) –

0

は、 "バックグラウンドコード" fBGクラスですか?もしそうなら、そのコードはコンストラクタで実行されていますか?もしそうなら、私はあなたのソリューションがうまくいくと思います。しかし、もう少し文脈を見ることなく、言うことは難しいです。

同じ画像を2回読み込んで問題はありません。だから私の推測では、あなたのクラスがあなたのクラスをどのようにセットアップしたかをあなたの問題が回っているということです。あなたが提供したコードには表示されていない他の問題があると思います。

同じイメージの2つだけを必要とする場合は、2つの別々のローダーは必要ありません。イメージを一度ロードしてから、Bitmapクラスを使用してローダーのコンテンツのコピーを作成するだけです。

ああ、第二一見、あなたの声明に:

BLen=2500; 

動作しません。

var BLen:Number = 2500; 
+0

ありがとうございました。申し訳ありませんが、私はasファイルから適切にコードをコピーしませんでした。私は前にそれをvarしました。フラッシュファイル内のインスタンスを使用することから外部ファイルをロードする直前にすべてが完全に機能しました。私は自分の状況がゴッドファーザーが上で述べたようなものだと思う。この問題を解決するために私を助けてください。どうもありがとうございます。 –

+0

その場合、ファイルの構造についてもっと詳しく知る必要があります。投稿したコードが以前に動作していた場合、これは他の何か(あなたのクラスをどのように編成したか、どのように見えるかなど)が問題であることを示しているようです。私は、あなたが外部の.asクラスファイルを使用していない場合、各ファイルの外観(またはFLAがどのように構造化されているか)に関する情報を投稿することをお勧めします。 – Allan

0

コードを正しく読んだ場合、あなたのインスタンスの1つは-2500px x座標になります。グラフィックがロードされている可能性はありますが、それはビューポートの左側にあるため、表示できません。

また、いくつかの他のポスターでは、ファイルを一度ロードしてから複製するほうがよいと私は同意します。これを行う方法については、http://www.adobe.com/devnet/flash/articles/blitting_mc.htmlをご覧ください。

HTH;

エイミー

関連する問題