我正在制作一本小而有趣的字典。
到目前为止,我有一个搜索栏。当用户输入单词时,他得到了定义。 我想知道是否可以将图像与定义关联起来。
这是我的代码:
public class Main extends Sprite{
private var ac:AutoComplete;
private var conteneurImage:Loader = new Loader();
private var image:URLRequest = new URLRequest("images/tannoy.gif");
conteneurImage.load(image);
private var fruitArray:Array = [
{label:"A bloc", Type:"Très fort", Description:"une boîte de achards"},
{label:"A fond", Type:"vie", Description:"Loulou"},
{label:"dfgdf", Type:"à grande vitesse.", Description:"Indique une vitesse"},
private var bg:Sprite;
// A couple of TextFields
private var t1:TextField;
private var t2:TextField;
// An input TextField to show our search results
private var it1:TextField;
// A couple of TextFormats
private var titleFormat:TextFormat;
private var titleFormatW:TextFormat;
// Two variables to hold our x and y positions
private var xPos:int;
private var yPos:int;
// Whenever we need to see the List component which is part of the AutoComplete class, an event is dispatched by the AutoComplete class and is picked up in the ListDepth function
// This takes our instance of the AutoComplete class - ac - and moves it to the highest available depth, which is the numChildren ( all the elements on stage ) - 1.
private function listDepth(e:Event):void{
setChildIndex(ac, numChildren - 1);
}
// This function is also a response to an event dispatched from the AutoComplete class. It takes the results, or lack of them, and displays that information in our it1 TextField
private function setDisplay(e:Event):void{
var fIndex:int = ac.aIndex;
if(fIndex == -1){
it1.text = ac.noResult;
it1.setTextFormat(titleFormat);
}else{
it1.htmlText = "<b>Définition rapide :</b> " + fruitArray[fIndex].Type + "<br/><br/><b>Définition complète:</b> " + fruitArray[fIndex].Description;
it1.setTextFormat(titleFormat);
}
}
那么,您认为将图像与标签相关联是否可能?
像
这样的东西 <img src="smiley.gif">
或
it1.htmlText = "<b>Définition rapide :</b> " + fruitArray[fIndex].Type + "<br/><br/><b>Définition complète:</b> " + fruitArray[fIndex].Description;
可能会添加一个代码,告诉您在此行中搜索图片。
你觉得我怎么能这样做?
THX
答案 0 :(得分:0)
我建议两种选择:
1)创建一个Word(或任何其他有意义的名称)。在这个类中,如果你想要的话,为单词本身或一个名字数组创建一个变量。还要为图像添加变量以及您要保留的任何其他数据。
以下是一个例子:
package {
import flash.display.MovieClip;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
import flash.display.DisplayObject;
public class Word
{
public var en_name:String;
public var fr_name:String;
public var image:DisplayObject;
public var imageURL:String;
private var imageLoader:Loader;
public function loadImage():void
{
imageLoader = new Loader();
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
imageLoader.load(new URLRequest(imageURL));
}
private function onImageLoaded(e:Event):void
{
imageLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onImageLoaded);
image = imageLoader.content;
imageLoader = null;
}
}
}
现在代替你的字符串数组生成单词数组。您将能够以不同的语言和图像访问他们的名字。如果你想从外面加载图像,我甚至还包括一个加载器(或者你可以直接分配图像var)。这不是字典中最具扩展性的版本,但您可以根据需要自由扩展和改进它。
2)稍微不那么优雅, - 只需制作字符串和图像数组。当您访问名称数组时,如fruitArray [4],您还可以访问具有相同访问点的图像数组,如fruitPictureArray [4]
希望有所帮助!