私のアクションスクリプトプロジェクト(FLARManager + Away3D)でメニューを使用する必要があり、コンボボックスを使用したいと思います。私はしようとするが失敗する。ActionScript 3のコンボボックス
import aplicacion.MyComboBox;
import artedra.*;
import com.transmote.flar.FLARManager;
import com.transmote.flar.marker.FLARMarker;
import com.transmote.flar.marker.FLARMarkerEvent;
import com.transmote.flar.tracker.FLARToolkitManager;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import spark.components.ComboBox;
import spark.components.Group;
[SWF(width="800", height="600", frameRate="30", backgroundColor="#C0C0C0")]
/**
*
* @author Iago Laz
*
*/
public class ARapp extends Sprite {
private var flarManager:FLARManager;
private var activeMarker:FLARMarker;
private var artedraManager:IARTeDraManager = new ARTeDraManager(stage);
private var targetDetected:Boolean = new Boolean(false);
private var next:Number = ARTeDraManager.GRID;
public function ARapp() {
addEventListener(Event.ADDED_TO_STAGE,onAdded);
}
private function onAdded (evt:Event) :void {
removeEventListener(Event.ADDED_TO_STAGE,onAdded);
flarManager = new FLARManager("../resources/flarConfig.xml",new FLARToolkitManager(),stage);
flarManager.addEventListener(FLARMarkerEvent.MARKER_ADDED,onMarkerAdded);
flarManager.addEventListener(FLARMarkerEvent.MARKER_UPDATED,onMarkerUpdated);
flarManager.addEventListener(FLARMarkerEvent.MARKER_REMOVED,onMarkerRemoved);
flarManager.addEventListener(Event.INIT,onFlarManagerInited);
}
private function onFlarManagerInited (evt:Event) :void {
flarManager.removeEventListener(Event.INIT,onFlarManagerInited);
artedraManager.showModel();
artedraManager.showViews();
artedraManager.showGridDots(ARTeDraManager.GRID);
var g:Group = new Group();
var cb:MyComboBox = new MyComboBox();
g.addElement(cb);
stage.addEventListener(KeyboardEvent.KEY_DOWN,reportKeyDown);
stage.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
private function reportKeyDown(event:KeyboardEvent):void {
if(event.keyCode==32) {
if(next==ARTeDraManager.DOTS)
next=ARTeDraManager.EMPTY;
else
next++;
artedraManager.showGridDots(next);
}
}
private function onMarkerAdded (evt:FLARMarkerEvent) :void {
trace("["+evt.marker.patternId+"] added");
activeMarker = evt.marker;
targetDetected = true;
}
private function onMarkerUpdated (evt:FLARMarkerEvent) :void {
activeMarker = evt.marker;
targetDetected = true;
}
private function onMarkerRemoved(evt:FLARMarkerEvent):void
{
trace("["+evt.marker.patternId+"] removed");
activeMarker = null;
targetDetected = false;
}
private function onEnterFrame(evt:Event):void {
if(activeMarker) {
artedraManager.rotateShapes(activeMarker.rotationZ);
}
artedraManager.showSphereMarkerDetected(targetDetected);
artedraManager.renderScenes();
}
}
しかし、それは何も表示されません。
私の単純なコードは、私のプロジェクトファイルIコードで、その後
import spark.components.ComboBox;
import mx.collections.ArrayCollection;
public class MyComboBox extends ComboBox
{
public function MyComboBox()
{
super();
var dp_ac:ArrayCollection = new ArrayCollection([
{label: "test 1"},
{label: "test 2"},
{label: "test 2"}
]);
this.dataProvider = dp_ac;
this.labelField = "label";
this.x=200;
this.y=-200;
this.width=20;
this.height=10;
}
}
です。私は何かが不足していると思うが、何がわからない。
誰でも助けてくれますか?エラーメッセージを
は編集:コードに基づいて
TypeError: Error #1009: No se puede acceder a una propiedad o a un m賯do de una referencia a un objeto nulo.
at mx.styles::StyleManager$/getStyleManager()[E:\dev\4.x\frameworks\projects\framework\src\mx\styles\StyleManager.as:125]
at mx.styles::StyleProtoChain$/getStyleManager()[E:\dev\4.x\frameworks\projects\framework\src\mx\styles\StyleProtoChain.as:970]
at mx.styles::StyleProtoChain$/initProtoChain()[E:\dev\4.x\frameworks\projects\framework\src\mx\styles\StyleProtoChain.as:149]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::initProtoChain()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:10446]
at mx.core::UIComponent/regenerateStyleCache()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:10509]
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::addingChild()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7213]
at mx.core::UIComponent/addChildAt()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:6943]
at spark.components::Group/addDisplayObjectToDisplayList()[E:\dev\4.x\frameworks\projects\spark\src\spark\components\Group.as:1825]
at spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()[E:\dev\4.x\frameworks\projects\spark\src\spark\components\Group.as:1416]
at spark.components::Group/addElementAt()[E:\dev\4.x\frameworks\projects\spark\src\spark\components\Group.as:1183]
at spark.components::Group/addElement()[E:\dev\4.x\frameworks\projects\spark\src\spark\components\Group.as:1141]
at aplicacion::ARapp/onFlarManagerInited()[C:\Users\Iago\workspace\PFG_ARTeDra\src\aplicacion\ARapp.as:75]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.transmote.flar::FLARManager/onTrackerComplete()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\FLARManager.as:1098]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.transmote.flar.tracker::FLARToolkitManager/onTrackerComplete()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\tracker\FLARToolkitManager.as:384]
at com.transmote.flar.tracker::FLARToolkitManager/initTracker()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\tracker\FLARToolkitManager.as:332]
at com.transmote.flar::FLARManager/onTrackerInited()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\FLARManager.as:1080]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.transmote.flar.tracker::FLARToolkitManager/checkForInitComplete()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\tracker\FLARToolkitManager.as:374]
at com.transmote.flar.tracker::FLARToolkitManager/onPatternsLoaded()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\tracker\FLARToolkitManager.as:364]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.transmote.flar.pattern::FLARPatternLoader/checkForLoadCompletion()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\pattern\FLARPatternLoader.as:205]
at com.transmote.flar.pattern::FLARPatternLoader/onPatternLoaded()[C:\Users\Iago\workspace\PFG_ARTeDra\src\com\transmote\flar\pattern\FLARPatternLoader.as:197]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
恐らくあなたは、ビューポート*下の子*を追加しています。もっとコードを表示してください。 –
私が "addChild(cb);"というコードを書くと、または "stage.addChild(cb);"それは同じだ。私はこのインポートを行います: "import mx.collections.ArrayCollection;"および "import spark.components.ComboBox;"私がこの小さなコードだけをメイン関数(コードなし)に入れようとすると、同じです。何も表示しません。 – ilazgo
質問(タイトル)があまりにも一般的です...トラブルが何であるかを説明しようとし始めません! –