XMLを「データベース」として使用して、画像の追加と削除を簡単にすることで、コードを改善しようとしています。
私がやっていた方法の前に、画像をインポートしてから、アクションスクリプト用にエクスポートされたムービークリップに追加し、ボタンをクリックすると、そのムービークリップを見つけてステージに追加して使用しました。
私はこれを新しい XML の方法にできる限り類似させようとしています。
XML をインポートしてイメージを見つけ、これを使用して準備できます。
function importXML(){
var loadXML:URLLoader = new URLLoader();
loadXML.load(new URLRequest("../xml/images.xml"));
loadXML.addEventListener(Event.COMPLETE, processXML);
}
function processXML(e:Event):void{
imageXML = new XML(e.target.data);
var image = imageXML.image.(@name=="image1").image;
trace(image);
importImage(image);
}
function importImage(imageName:String) {
var loadIMG = new Loader();
var url = "../images/last_steps/"+imageName;
var url_req:URLRequest = new URLRequest(url);
loadIMG.load(url_req);
loadIMG.name = "image1";
}
クリックで実行される関数が機能するように、名前を付けてみました。
function myButtonClick(ev:MouseEvent):void
{
addImage("image1");
}
function addImage(image:String)
{
var imageName = image;
var imageClass:Class = getDefinitionByName(imageName) as Class;
addChild(imageClass);
}
最後の関数は、movieClip に手動で追加したときに機能しますが、今は機能しません。これも試してみました。
function addImage(image:String)
{
var imageName = image;
// var imageClass:Class = getDefinitionByName(imageName) as Class;
addChild(imageName);
}
これもうまくいきません。
私の質問を要約すると、ボタンをクリックしたときに XML 経由でインポートされた画像を名前にリンクするにはどうすればよいですか?