Actionscript 3 as3如何创建DropDownList(无XML)
我是AS3的新手,我正在做一些简单的UI。我想创建一个带有几个选项的下拉列表。我已经阅读了很多教程,其中有数百行用于制作下拉列表。真正地一百行的下拉列表?我只想创建一种简单的HTML选择。如果你知道一个教程,也将工作 对于这种问题我真的很抱歉,但是我真的没有发现任何用as3编写的Actionscript 3 as3如何创建DropDownList(无XML),actionscript-3,Actionscript 3,我是AS3的新手,我正在做一些简单的UI。我想创建一个带有几个选项的下拉列表。我已经阅读了很多教程,其中有数百行用于制作下拉列表。真正地一百行的下拉列表?我只想创建一种简单的HTML选择。如果你知道一个教程,也将工作 对于这种问题我真的很抱歉,但是我真的没有发现任何用as3编写的 我已经检查了adobe提供的页面,但该示例使用的是XML 我没有看到您提到的示例中使用XML,无论如何,这是Flex中使用arrayCollection的Dropdownlist的简单代码 <?xml vers
我已经检查了adobe提供的页面,但该示例使用的是XML 我没有看到您提到的示例中使用XML,无论如何,这是Flex中使用arrayCollection的Dropdownlist的简单代码
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2009/03/07/using-the-dropdownlist-in-flex-gumbo/ -->
<s:Application name="Spark_DropDownList_test"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:layout>
<s:BasicLayout />
</s:layout>
<s:DropDownList id="dropDownLst"
requireSelection="true"
horizontalCenter="0" top="20">
<s:dataProvider>
<s:ArrayList source="[The,quick,brown,fox,jumps,over,the,lazy,dog]" />
</s:dataProvider>
</s:DropDownList>
</s:Application>
如果您不想使用MXML,您可以通过代码完成:
yourDropDownInstance.dataProvider = new ArrayCollection(["The","quick",
"brown","fox",
"jumps","over",
"the","lazy","dog"]);
纯AS3类:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
import com.greensock.*;
import com.greensock.easing.*;
public class MouseOverMenu extends MovieClip {
public var _sMouseOver:MovieClip;
public var _sMenu:MovieClip;
private var _menuTimer:Timer;
private var _menuOpen:Boolean = false;
public function MouseOverMenu():void {
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
private function init(e:Event):void {
_sMouseOver.buttonMode = true;
_sMouseOver.addEventListener(MouseEvent.MOUSE_OVER, showMenu, false, 0, true);
_sMouseOver.addEventListener(MouseEvent.MOUSE_OUT, startClose, false, 0, true);
_sMouseOver.addEventListener(MouseEvent.MOUSE_OVER, cancelClose, false, 0, true);
_menuTimer = new Timer( 50 );
_menuTimer.addEventListener ( TimerEvent.TIMER, doCloseMenu );
_sMenu.visible = false;
_sMenu.alpha = 0;
_sMenu.addEventListener(MouseEvent.MOUSE_OUT, startClose, false, 0, true);
_sMenu.addEventListener(MouseEvent.MOUSE_OVER, cancelClose, false, 0, true);
}
private function showMenu(e:MouseEvent):void {
_menuOpen = true;
_sMenu.visible = true;
TweenLite.to(_sMenu, .5, {y:73, alpha:1});
}
private function startClose ( e:Event ):void {
//trace('startClose ' + e.target);
_menuTimer.start();
}
private function cancelClose ( e:Event ):void {
//trace('cancelClose ' + e.target);
_menuTimer.stop();
}
private function doCloseMenu ( e:Event ) {
closeMenu();
}
private function closeMenu ():void {
if ( _menuOpen ) {
TweenLite.to(_sMenu, .5, {y:50, alpha:0, onComplete: hideMenu});
}
_menuTimer.stop();
_menuOpen = false;
}
private function hideMenu():void {
_sMenu.visible = false;
}
}
}
我的意思是没有MXML标签。我之所以说XML,是因为在adobe文档中,他们在MXML语法部分明确地说:“MXML是一种XML语言,用于为adobe®Flex®应用程序设计用户界面组件。”感谢您的代码。我之所以会出错,是因为我没有com.greensock.*一个也是tweellite的。从哪里可以买到com.greensock?我对flash完全陌生&使用flashdevelope。Asa我可以将它们包括在项目中并检查它,我会让你知道结果。谢谢你的回答。@kitimenpolku关于软件包的小提示:大多数人都遵循反向域格式。所以com.greensock是由greensock.com创建的一个包。这在尝试查找第三方软件包时非常有用,同时也是您应该如何构造自己的软件包名称的方法确保我创建并添加了如下内容:
var list:DropDownList=new DropDownList();list.dataProvider=newarraycollection([“The”、“quick”、“brown”、“fox”、“jumps”、“over”、“The”、“lazy”、“dog]”);addChild(列表)代码>。我在雪碧上什么也没看到。为什么不显示?您可以跟踪DDList的大小,可以检查DDList实例的stage属性是否为null(当它添加到stage或它在stage上的父级时,它不为null)。