Error #1069: Eigenschaft nicht gefunden und es ist kein Standardwert vorhanden
habe ein Problem mit einem Projekt an dem ich arbeite in Flash Builder.
Folgende ist meine stack-und code-Beispiel. Könnte mir bitte jemand sagen was ich falsch mache?
Vielen Dank für Ihre Zeit.
-- Stack --
ReferenceError: Error #1069: Eigenschaft page4, die nicht auf WOAPPv2 und es ist kein Standardwert.
bei WOAPPv2/dragDropHandler()[/Users/martinw/Dokumente/Adobe Flash Builder 4/WOAPPv2/src/WOAPPv2.mxml:165]
bei flash.events::EventDispatcher/dispatchEventFunction()
bei flash.events::EventDispatcher/dispatchEvent()
bei mx.core::UIComponent/dispatchEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:12528]
bei mx.managers.dragClasses::DragProxy/_dispatchDragEvent()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:374]
bei mx.managers.dragClasses::DragProxy/mouseUpHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:599]
--Code-Beispiel -- Das, was funktioniert
import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;
private function initiateDrag(event:MouseEvent,value:String):void{
var dragInitiator:Image= event.currentTarget as Image;
var dragSource:DragSource = new DragSource();
dragSource.addData(value, 'value');
DragManager.doDrag(dragInitiator, dragSource, event);
}
private function dragEnterHandler(event:DragEvent):void {
var dropTarget:VBox =event.currentTarget as VBox;
if (event.dragSource.hasFormat('value')) {
DragManager.acceptDragDrop(dropTarget);
}
}
private function dragDropHandler(event:DragEvent):void {
var pageName:String = event.currentTarget.name as String;
var value:String = event.dragSource.dataForFormat('value') as String;
this[pageName].source = "assets/big/"+value;
}
<s>
<s:HGroup id="hGr"
requestedColumnCount="2"
variableColumnWidth="false"
columnWidth="475"
height="450"
gap="100"
clipAndEnableScrolling="true" paddingLeft="10" paddingRight="10">
<mx:VBox name="page1"
backgroundColor="#EFEFF0"
verticalScrollPolicy="off"
horizontalScrollPolicy="off"
horizontalAlign="center" verticalAlign="middle"
dragEnter="dragEnterHandler(event)"
dragDrop="dragDropHandler(event)"
width="475"
x="0">
<mx:Image id="page1" showBusyCursor="true" width="713" height="692" scaleContent="true" maintainAspectRatio="true" minWidth="713" minHeight="692" scaleX="1" scaleY="1" horizontalAlign="center" verticalAlign="top"/>
</mx:VBox>
</s:HGroup>
Es Bricht Wenn ich es auf diese Weise, durch das erstellen der Container und Bilder auf Laufzeit
<script>
private function initVars():void {
createSpreads();
}
public function createSpreads():void {
var s:VBox = new VBox();
s.name ="page4";
s.setStyle("backgroundColor","#fe0000");
s.verticalScrollPolicy="off";
s.horizontalScrollPolicy="off";
s.setStyle("horizontalAlign","center");
s.setStyle("verticalAlign","middle");
s.addEventListener(DragEvent.DRAG_ENTER, dragEnterHandler);
s.addEventListener(DragEvent.DRAG_DROP, dragDropHandler);
s.width= 475;
s.setStyle("x","0");
hGr.addElement(s);
hGrCol4.text = "Vboxname: "+s.name+"VboxID: "+s.id;
var page3:Image = new Image();
page3.id ="page4";
page3.showBusyCursor = true;
page3.width = 713;
page3.height = 692
page3.scaleContent = true;
page3.maintainAspectRatio = true;
page3.minWidth = 713;
page3.minHeight = 692;
page3.scaleX = 1;
page3.scaleY = 1;
page3.source = "assets/big/IMG_7112.jpg";
page3.setStyle("backgroundColor","#ffffff");
page3.setStyle("horizontalAlign","center");
page3.setStyle("verticalAlign","top");
s.addElement(page3);
hGrCol3.text = "Imagename: "+page3.name+"ImageID: "+page3.id;
}
import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;
private function initiateDrag(event:MouseEvent,value:String):void{
var dragInitiator:Image= event.currentTarget as Image;
var dragSource:DragSource = new DragSource();
dragSource.addData(value, 'value');
DragManager.doDrag(dragInitiator, dragSource, event);
}
private function dragEnterHandler(event:DragEvent):void {
var dropTarget:VBox =event.currentTarget as VBox;
if (event.dragSource.hasFormat('value')) {
DragManager.acceptDragDrop(dropTarget);
}
}
private function dragDropHandler(event:DragEvent):void {
var pageName:String = event.currentTarget.name as String;
var value:String = event.dragSource.dataForFormat('value') as String;
this[pageName].source = "assets/big/"+value;
}
</script>
<s>
<s:HGroup id="hGr"
requestedColumnCount="2"
variableColumnWidth="false"
columnWidth="475"
height="450"
gap="100"
clipAndEnableScrolling="true" paddingLeft="10" paddingRight="10">
</s:HGroup>
</s>
Oben ohne Container in HGroup gibt die 'Eigenschaft page4, die nicht auf WOAPPv2 und es ist keine default-Wert' - Mein Ergebnis sollte sein, diese
page4.Quelle = "assets/big/imagename.jpg";
Bin ich überfragt. Im Umdenken und kann einfach erzeugen der vboxes und dann einen trigger zu setzen um das Bild zu erstellen und füllen Sie in die samedragDropHandler.
Gedanken?
Unten ist die Lösung - wieder - Dank geht an alxx. Jetzt brauche ich beitragen, mein wissen an andere Leute hier.
public function dragDropHandler(event:DragEvent):void {
//Retrieve the Image Name from Drop
var value:String = event.dragSource.dataForFormat('value') as String;
//
event.currentTarget.getChildAt(0).source = "assets/big/"+value;
}
- Dude, ich kann nicht finden, 165-TEN Zeile in Ihrem code! Wo ist es? Übrigens, FB bekam sehr gute debugger, sollten Sie es verwenden.
- OK, es muss
this[pageName]
. Ihre app hat keine Eigenschaft pageName (var pageName keine count - Eigenschaft Begriffen werden, das durch den Wert der Seitenname.) - -1. Sie können nicht nur fügen Sie Ihren code ein und erwarten von uns zu Debuggen, die es für Sie.
- Entschuldigung. Dies ist das erste mal zu F&Ein Brett. Ich habe meine Forschung und kann nicht es herausfinden. Ich poste nur den code, der ist Schuld, das nächste mal. alxx - vielen Dank für Ihre Zeit. Ich habe versucht, die Erstellung von Eigenschaften basiert auf den adobe-Beispiele. Könnten Sie bitte geben Sie einen link oder eine Einsicht, wie man erstellen Sie eine Eigenschaft? Mein Ziel war addelement einer vbox und Bild, dass das gemeinsame Kind den Namen mit einer id und verwenden Sie den Fall zu greifen, die currenttarget-name, das Bild-Steuerelement - mit diesem[pageName] gibt den richtigen string - page4 aber Bomben aus. Soll ich Eigentum in den Erklärungen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
...weiterhin hier für die richtige Formatierung
Problem line:
Nicht sicher, ob ich verstehe es richtig. Wenn event.currentTarget ist das Bild, das Sie brauchen, Sie können nur wirken, zu Bild. Oder Sie benötigen zu finden einem anderen Bild irgendwo (man erzeugt in Repeater)?
update
Namen von DisplayObjects neu sind nur Beschriftungen, keine Verweise. Wenn Sie denken, Sie können Durchlaufen die Objekt-Hierarchie mit Namen wie in JS-DOM, dann Nein, es ist getan andere Möglichkeit in Flash. Sie können erhalten Referenz zu VBox mit
event.currentTarget
- es ist mehr nützlich, dass der name (String). Sie können Bild drin mit getChildAt.