誰かが私を助けてくれることを願っています。私はactionscript3(AIR)にチャットエンジンを書くことを任されており、すべてのチャットメッセージにはそれに関連付けられたポスターのイメージがあります。だから私は一度に画面上に5つのチャットメッセージを持っているが、最後の人の投稿が異なるため、#1は常に変更されます。ビットマップイメージをフラッシュで変更する
私が間違っていると思うのは、画像を置き換える必要があるたびに.addChildメソッドを使用することです。これはステージ上に多くのものを作成し続けるためです。私がしようとしたことは、以下のコードですが、画像の更新を拒否しています。私はそれが動作するはずと思った道:「ImageBitMapを上書きすると仮定される -
1行目は - 次の画像は、2行目になると
「this.ChatLine」に追加された映画のクラスイメージを作成し、新しい画像データではそのビットは機能しません。
1からthis.ChatLine:bmChatImage = new mbChatImage();
2からthis.ChatLine.LoadChatImage("NewImage.png");
package com.mypackage {
import flash.display.MovieClip;
import flash.events.*;
import flash.display.Loader;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.net.URLRequest;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
public class bmChatImage extends MovieClip {
public var ChatImage = new Loader();
private var ImageBitMap:Bitmap = null;
private var AddedBitMap:Boolean = false;
private var ChatImageBMD:BitmapData = null;
private var Parent = null;
private var ImageURL:String = "";
public function bmChatImage() {
ChatImage.load(new URLRequest("http://mydomain/default.png"));
ChatImage.contentLoaderInfo.addEventListener(Event.COMPLETE, DoneLoadImage);
ChatImage.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
public function LoadChatImage(pImageURL:String,pChatSequence:int) {
ImageURL = pImageURL;
ChatSequence = pChatSequence;
ChatImage.load(new URLRequest(ImageURL));
ChatImage.contentLoaderInfo.addEventListener(Event.COMPLETE, DoneLoadImage);
ChatImage.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
protected function ioErrorHandler(e:IOErrorEvent):void{
trace("ERROR",e.text);
}
private function DoneLoadImage(ThisObject:Event)
{
ChatImageBMD = Bitmap(ChatImage.content).bitmapData.clone();
ImageBitMap = new Bitmap(ChatImageBMD);
if (AddedBitMap == false) {
AddedBitMap = true;
this.addChild(ImageBitMap);
}
}
}
}
https://projectavian.com/zero.gif – Marty
ノートとして。変数と関数名にUpperCamelCaseを使用しないことをお勧めします。静的クラス参照を区別するのに役立ちます。 (なぜ、上のコードのすべての変数がクラスの色付けを持つのか) – WORMSS