我创建了一个页面1024 x 850,我试图实现在search_txt中输入文本时按下search_btn图像应该显示在main_mc但我不断收到错误“找不到类型或者不是编译时常量:搜索“和”调用可能未定义的方法搜索“
我有三个文件可以在flickr上创建搜索。 AS3代码:
import xml.*;
import flickr.*;
import fl.controls.*;
var search_txt:TextInput = search_txt;
var search_btn:Button = search_btn;
var search:Search = new Search() as Button;
var reader:RSSReader = new RSSReader();
var media:Namespace = new Namespace("http://search.yahoo.com/mrss/");
default xml namespace = media;
function rssProcessed(event:Event):void
{
var imgLoader:Loader;
var thumbX:Number = 0;
var thumbY:Number = 65;
for(var i:uint = 0; i < reader.episodes.length(); i++)
{
imgLoader = new Loader();
imgLoader.load(new URLRequest(reader.episodes[i].thumbnail.@url));
addChild(imgLoader);
if(i%5 == 0 && i != 0)
{
thumbY += 80;
thumbX = search_txt.x;
}
imgLoader.x = thumbX;
imgLoader.y = thumbY;
thumbX += 80;
if(i >= 14)
{
break;
}
}
trace(reader.episodes[0].thumbnail.@url);
}
function dataReady(event:Event):void
{
reader.addEventListener(Event.COMPLETE, rssProcessed);
reader.processXML(search.feed);
}
function searchFlickr(event:MouseEvent):void
{
search.search(search_txt.text);
search.addEventListener(Event.COMPLETE, dataReady);
}
search_btn.addEventListener(MouseEvent.CLICK, searchFlickr);
导入XML(此文件夹中的文件名为RSSReader.as)
package xml
{
import flash.events.*;
import flash.net.*;
public class RSSReader extends EventDispatcher
{
private var xmlLoader:URLLoader;
public var feed:XML;
public var episodes:XMLList;
public var title:String;
public var description:String;
public function RSSReader()
{
xmlLoader = new URLLoader();
}
public function load(xmlReq:URLRequest):void
{
xmlLoader.load(xmlReq);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
}
private function xmlLoaded(event:Event):void
{
processXML(new XML(xmlLoader.data));
}
public function processXML(xmlData:XML):void
{
feed = xmlData;
episodes = feed..item;
title = feed.channel.title;
description = feed.channel.description;
dispatchEvent(new Event(Event.COMPLETE));
}
}
}
导入flickr(此文件夹中的文件名为Search.as)
package flickr
{
import flash.net.*;
import flash.events.*;
public class Search extends EventDispatcher
{
private var req:URLRequest;
public var info:URLVariables;
private var loader:URLLoader = new URLLoader();
public var feed:XML;
public function Search()
{
}
public function search(searchStr:String):void
{
req = new URLRequest("https://api.flickr.com/services/feeds/photos_public.gne");
info = new URLVariables();
info.format = "rss_200";
info.tags = searchStr;
req.data = info;
loader.load(req);
loader.addEventListener(Event.COMPLETE, dataLoaded);
}
private function dataLoaded(event:Event):void
{
feed = new XML(loader.data);
dispatchEvent(new Event(Event.COMPLETE));
}
}
}
有没有人知道修复此问题?
答案 0 :(得分:0)
Search类扩展了EventDispatcher,但您将搜索对象初始化为Button。如果要将按钮用作按钮,搜索需要扩展按钮。