库类的使用让我再次感到困惑。 我有以下情况:
package com.op_pad.pages
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
/**
* ...
* @author Martino Wullems
*/
public class Page extends MovieClip
{
public var currentPage:String = ""; //help page label
public var testvar:int = 0;
var helpPage:HelpPage;
public function Page(PAGENAME:String = null):void {
//tweening etc
addEventListener(Event.ADDED_TO_STAGE, onStage);
trace("currentPage: " + currentPage);
trace("testvar: " + testvar);
}
private function onStage(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onStage);
trace("on stgae called");
try { terug.addEventListener(MouseEvent.CLICK, goback, false, null, true) } catch (e) { };
try{homebutton.addEventListener(MouseEvent.CLICK, goHome, false, 0, true)}catch (e) { };
try { stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true) } catch (e) { trace("back button fail"); };
try { help.addEventListener(MouseEvent.CLICK, showHelpPage, false, 0, true) } catch (e) { trace("help not found") };
}
public function addListeners():void {
//try{terug.addEventListener(MouseEvent.CLICK, goback, false, null, true)}catch(e){};
//try{homebutton.addEventListener(MouseEvent.CLICK, goHome, false, 0, true)}catch (e) { };
//try{stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false, 0, true)}catch (e) {trace("back button fail"); };
}
public function goback(e:MouseEvent):void
{
try { MovieClip(parent).loading = false } catch (e) { trace("loading boolean not existent");}
MovieClip(parent).removeChild(this);
}
private function goHome(e:MouseEvent):void
{
try { MovieClip(parent).loading = false } catch (e) { trace("loading boolean not existent");}
MovieClip(parent).removeChild(this);
}
private function showHelpPage(e:MouseEvent):void
{
helpPage = new HelpPage();
addChild(helpPage);
helpPage.gotoAndStop(currentPage);
trace("help page called, currentPage: " + currentPage);
}
private function onKeyDown(e:KeyboardEvent):void
{
//when keyboard back is pressed
if (e.keyCode == Keyboard.BACK) {
e.preventDefault();
e.stopImmediatePropagation();
goback(null);
}
}
}
}
邋code的代码,仍然需要清理。
继承Page类
的子类package
{
import com.op_pad.pages.Page;
/**
* ...
* @author Martino Wullems
*/
public class FavorietenPage extends Page
{
public function FavorietenPage():void
{
trace("favorietenpage called");
super();
currentPage = "favorieten";
}
}
}
“FavorietenPage”也是我想要添加到舞台的库项目。我尝试了几种设置但无法使其正常工作。
对我来说最符合逻辑的是以下[库项目属性]: 分类:com.op_pad.pages.FavorietenPage BaseClass:com.op_pad.pages.Page;
使用该类时我不能放入任何基类,所以我不得不删除基类。 当只使用类时,我得到一大堆错误根本没有任何意义,即使我注释掉Page类中的所有代码,它仍然会出现。
com\op_pad\pages\FavorietenPage.as:7: 1152: A conflict exists with inherited definition com.op_pad.pages:Page.help in namespace public.
com\op_pad\pages\FavorietenPage.as:12: 1152: A conflict exists with inherited definition com.op_pad.pages:Page.terug in namespace public.
com\op_pad\pages\FavorietenPage.as:21: 1152: A conflict exists with inherited definition com.op_pad.pages:Page.home in namespace public.
这根本不对我有任何意义。 知道应该如何使用这种情况吗?提前感谢
答案 0 :(得分:1)
您误解了属性面板中“class”和“base class”字段的含义:
基类的默认值 到
flash.display.MovieClip
。用这个 默认,除非您使用的是 自动生成的那个类 使用外部功能 类。基类不是同义词 延伸;如果你指定 一个自己扩展的自定义类 另一类,没有必要 将此超类指定为Base 类。在这种情况下,默认flash.display.MovieClip
是 足够。但是,如果你想要的话 两个符号,RedFish和BlueFish,来 功能相同但有 不同的皮肤,你可以使用 创作工具创作不同 外观,然后设置他们的基类 钓鱼和使用鱼类 外部Fish.as文件提供 两种鱼的功能。