2011-05-16 106 views
0

我必须使用actionscript来实现带有图标的菜单。 我创建XML数据提供程序,并设置如何将Loader对象返回为类

menu = Menu.createMenu(null, dataArray, true); 
menu.iconFunction = iconFunction; 

到这里一切都很好,我的菜单呈现,但只有标签。 创建iconFunction如下:

private function iconFunction(item:Object):Class 
{ 
    var st:Loader = new Loader(); 
    st.load(new URLRequest(item.icon)); 
    return ?; 
} 

,这里是我的问题:我怎么回我loader object as Class? 我googling这个小时,并找不到相关的东西。

非常感谢!

回答

0

您可以使用Ben Stucki's solution的位置。

+0

试过 - 出于某种原因不起作用。我不使用mxml - 所有内容都是用actionscript构建的。我看到图像加载,但它没有在菜单中绘制。 – 2011-05-17 05:04:06

+0

如果不更改,则不能使用此代码。只要将它用作模式并根据您的任务调整这些原则即可。 – Constantiner 2011-05-17 05:52:27

+0

谢谢,最后我想出了如何为我的需求定制此代码,现在它正在工作。 – 2011-06-03 12:37:05

0

这个例子有帮助吗?

package { 

import flash.display.Sprite; 
import flash.utils.ByteArray; 
import flash.display.Loader; 
import flash.net.URLLoader; 
import flash.net.URLRequest; 
import flash.net.URLLoaderDataFormat; 
import flash.geom.Rectangle; 
import flash.events.Event; 

public class Main extends Sprite { 

    private var urlLoader:URLLoader = new URLLoader(); 

    public function Main() { 
     urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
     urlLoader.load(new URLRequest("http://server.com/image.jpg")); 

     urlLoader.addEventListener(Event.COMPLETE, completeHandler); 
    } 

    private function completeHandler(event:Event):void { 
     var loader:Loader = new Loader(); 
     loader.loadBytes(urlLoader.data); 
     addChild(loader); 
    } 
} 

}

+0

感谢您的帮助。我真正需要的是如何在菜单控件中设置图标的示例,而数据提供程序是对象数组? – 2011-05-16 17:29:40

+0

去http://blog.benstucki.net/?p=42,该实用程序加载远程资产(图像)作为类 – Satish 2011-05-16 17:34:50

+0

感谢,似乎是有希望的,但它不适用于菜单项。可能适用于按钮等,但不适用于菜单项。你有没有一个mx:菜单的例子,这是在ActionScript中创建的,并使用图标?但动态加载它们? – 2011-05-17 05:06:19