我正在尝试学习Flex和Actionscript。我在Flash中找到了Moock测验示例,并希望将其转换为Flex应用程序。我试图理解actionscript和mxml之间的关系。如何使用QuizApp类并将其内容放在mxml文件的容器中?
<fx:Script>
<![CDATA[
import QuizApp;
var ms:QuizApp = new QuizApp;
protected function init():void
{
msc.addChild(ms);
}
]]>
</fx:Script>
<mx:VBox id="msc" />
类
package {
import flash.display.Sprite;
import mx.controls.Button;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class QuizApp extends Sprite {
//for managing questions:
private var quizQuestions:Array;
private var currentQuestion:QuizQuestion;
private var currentIndex:int = 0;
public function QuizApp() {
quizQuestions = new Array();
createQuestions();
createButtons();
createStatusBox();
addAllQuestions();
hideAllQuestions();
firstQuestion();
}
... etc
}
}
答案 0 :(得分:3)
我试图理解actionscript之间的关系 和mxml。
MXML是一种ActionScript代码生成语言。当您编写MXML时,Flex编译器会将您的MXML文件转换为ActionScript类。您可以通过为Flex编译器指定“keep-generated-actionscript”参数来保存此生成的代码。我经常将它缩短为“保持”并且工作正常。
MXML掩盖了幕后发生的许多复杂性。
我希望这有助于设定你的期望框架。
要在MX Flex容器内使用“Flex不可知”ActionScript Sprite Class,您应该能够像创建其他任何类一样使用它。首先,在组件的顶级标记处导入名称空间:
myNamespace:xmlns="*"
然后你应该可以使用它,就像这样:
<myNamespace:QuizApp id="quizAppInstance" />
如果您使用的是Flex 4 Spark容器,则需要一些实现IVisualElement的东西;精灵没有。但是,您可以在SpriteVisualElement类中包装自己的类而不需要太多努力。