Hallo, ich mache gerade Praktikum und beschäftige mich dort seit 3 Tagen mit dem Programmieren in Flex. Das Problem ist ich habe aus meiner Sicht eine bereits ziemlich anspruchsvolle Aufgabe bekommen. Könntet ihr mir vielleicht helfen. Ich poste einfach mal den Code. Das wäre der Quellcode der ersten Application-Datei .mxml : PHP-Code: <mx:Script> <![CDATA[ import mx.controls.Button; import mx.core.DragSource; import mx.managers.DragManager; import mx.events.DragEvent; import mx.core.UIComponent; import mx.controls.Image; [Bindable] private var marker:Item; private function acceptIt(event:DragEvent):void { DragManager.acceptDragDrop(UIComponent(event.target)); } private function performDrop(event:DragEvent):void { var source:Item; if (DragEvent(event).dragInitiator is List) { source = Item(List(DragEvent(event).dragInitiator).selectedItem); var img:Item = new Item(); img.info = source.label; img.x = event.localX; img.y = event.localY; img.source = source.myIcon; img.width = 50; img.height = 50; img.addEventListener(MouseEvent.MOUSE_MOVE, dragIt); img.addEventListener(MouseEvent.CLICK, click); cvs.addChild(img); } else if(DragEvent(event).dragInitiator is Image) { source = Item(DragEvent(event).dragInitiator); source.x = event.localX; source.y = event.localY; if (source.hasLines){ var currentLine:Image = Image(source.lines.getItemAt(0)); cvs.graphics.lineStyle(5, 5.0, 80); } } } private function click(event:MouseEvent):void{ if (marker == null){ trace("saved"); this.marker = Item(event.currentTarget); } else { var lineImage:Image = new Image(); var currentImage:Item = Item(event.currentTarget); lineImage.graphics.moveTo(marker.x+marker.width/2, marker.y+marker.height/2); lineImage.graphics.lineStyle(5); lineImage.graphics.lineTo(currentImage.x+currentImage.width/2, currentImage.y+currentImage.height/2); lineImage.addEventListener(MouseEvent.CLICK, lineClick); currentImage.addLine(lineImage); marker.addLine(lineImage); cvs.addChild(lineImage); marker = null; } } private function lineClick(event:MouseEvent):void{ trace("lineClick"); } private function dragIt(event:MouseEvent):void { var dragInitiator:Image = Image(event.currentTarget); var dragSource:DragSource = new DragSource(); dragSource.addData(1, 'value'); var dragProxy:Image = new Image(); dragProxy.source = event.currentTarget.source; dragProxy.height = 10; dragProxy.width = 10; DragManager.doDrag(dragInitiator, dragSource, event, dragProxy); } [Embed(source='assets/img1.jpg')] [Bindable] public var iconSymbol1:Class; [Embed(source='assets/img2.jpg')] [Bindable] public var iconSymbol2:Class; [Embed(source='assets/img3.jpg')] [Bindable] public var iconSymbol3:Class; [Embed(source='assets/img4.jpg')] [Bindable] public var iconSymbol4:Class; [Embed(source='assets/img5.jpg')] [Bindable] public var iconSymbol5:Class; [Embed(source='assets/img6.jpg')] [Bindable] public var iconSymbol6:Class; [Embed(source='assets/img7.jpg')] [Bindable] public var iconSymbol7:Class; [Embed(source='assets/img8.jpg')] [Bindable] public var iconSymbol8:Class; [Embed(source='assets/img9.jpg')] [Bindable] public var iconSymbol9:Class; ]]> </mx:Script> <mx:HBox x="10" y="10"> <mx:VBox> <mx:List id="tl" height="756" dragEnabled="true" allowMultipleSelection="true" width="200" iconField="myIcon"> <mx:dataProvider> <mx:Array> <local:Item label="Bild1" myIcon="{iconSymbol1}"/> <local:Item label="Bild2" myIcon="{iconSymbol2}"/> <local:Item label="Bild3" myIcon="{iconSymbol3}"/> <local:Item label="Bild4" myIcon="{iconSymbol4}"/> <local:Item label="Bild5" myIcon="{iconSymbol5}"/> <local:Item label="Bild6" myIcon="{iconSymbol6}"/> <local:Item label="Bild7" myIcon="{iconSymbol7}"/> <local:Item label="Bild8" myIcon="{iconSymbol8}"/> <local:Item label="Bild9" myIcon="{iconSymbol9}"/> </mx:Array> </mx:dataProvider> </mx:List> </mx:VBox> <mx:VBox height="756"> <mx:Canvas id="cvs" alpha="0.1" width="653" height="646" borderStyle="solid" backgroundColor="#FFFFFF" dragEnter="acceptIt(event);" dragDrop="performDrop(event);"> </mx:Canvas> <mx:HBox width="653"> <mx:Label text="{marker.info}" width="588" height="89" fontSize="15" fontWeight="bold" themeColor="#c0c0c0" alpha="1.0"/> </mx:HBox> </mx:VBox> </mx:HBox> Und das der Code der Klasse Item.as PHP-Code: package{ import mx.collections.ArrayCollection; import mx.controls.Image; public class Item extends Image { private var _myIcon:Class; private var _label:String; private var _info:String; [Bindable] public function get info():String{ return this._info; } public function set info(value:String):void{ this._info = value; } private var _lines:ArrayCollection = new ArrayCollection(); public function get lines():ArrayCollection{ return this._lines; } public function addLine(line:Image):void{ this._lines.addItem(line); } public function removeLine(line:Image):void{ this._lines.removeItemAt(this._lines.getItemIndex(line)); } public function get hasLines():Boolean{ return this._lines.length > 0; } public function get myIcon():Class{ return this._myIcon; } public function set myIcon(value:Class):void{ this._myIcon = value; } public function get label():String{ return this._label; } public function set label(value:String):void{ this._label = value; } }} Wenn ihr das Programm ausprobiert werdet ihr denk ich mal sehen wozu es gut sein soll. Mein Problem ist folgendes: Man soll ja die Bilder die man auf die Fläche gezogen hat, mit linien verbinden können. Gibt es eine "einfache" Möglichkeit das so zu realisieren das wenn man die Bilder hinterher dann bewegt die linie auch mit den Bild mit geht? Die Koordinaten der Linie muss denke ich mal mit den Koordinaten des Bildes gespeichert werden. Ich weiß nur nich wie ich das machen soll. Diesen Code haben ich mir gerade so irgendwie zusammenreimen können und auch Hilfe von meinem Praktikumsbetreuer bekommen. Allerdinge bin ich wie gesagt noch ziemlich am Anfang mit Flex. Ich wäre echt dankbar für jede Hilfe