2013-03-20 72 views
0

創建時鐘系統,需要從xml訪問數據。數據中的元素決定了他建築的顏色。需要幫助將xml中的數據與界面中的對象鏈接並定位它們。到目前爲止,我已經能夠提取數據,但不知道如何鏈接這兩個位置。我只想到此爲止。要使用ActionScript中的數據使用actionscript 3來操縱電影剪輯

import com.greensock.loading.*; 
import com.greensock.loading.display.*; 
import com.greensock.events.LoaderEvent; 
import flash.events.Event; 
import flash.net.URLLoader; 


var xmlLoader:URLLoader=new URLLoader(); 
xmlLoader.addEventListener(Event.COMPLETE, loadXML); 

var xmlData:XMLList=new XMLList(); 
xmlLoader.load(new URLRequest("xmldata.xml")); 

function loadXML(e:Event):void 
{ 
    var i:int; 
    xmlData = new XMLList(e.target.data); 
    var theDots = xmlData.dots; 
    var posx = xmlData.dots.posx; 
    var posy = xmlData.dots.posy; 
    for (i=0; i<theDots.length(); i++) 
    { 
     var dot_name = theDots[i].name; 
     var pos_x = theDots[i].posx; 
     var pos_y = theDots[i].posy; 

     var mc:MovieClip = new theDot; 
     var pos_x:Point X = new x; 
     var pos_y:Point Y = new y; 
    } 

} 
+1

我想我們還需要多一點去做,xml是什麼樣的,接口是什麼樣的? – Neil 2013-03-20 08:42:31

+0

對不起,雖然有些遺漏。它是一個簡短版本的XML,但元素只有這些。 <?XML版本= 「1.0」 編碼= 「ISO-8859-1」?> \t \t \t \t \t 1.1.1 \t \t -146.3 \t \t 18.1 \t \t \t \t \t \t 1.1.2 \t \t -146.3 \t \t 18.1 \t \t \t \t 體2 \t \t 1.1.3 \t \t -146.3 \t \t 18.1 \t \t \t \t \t CKD \t \t 1.1.4 \t \t -146.3 \t \t 18.1 \t 2013-03-20 09:14:40

回答

0

你必須設計您的TheDot類和所有其他簡單的類接受的構造性質,可能與默認值,或給他們功能的接受性,可能是散裝的,因爲說的着色建築物將啓動圖形娛樂。舉個例子:

public class TheHouse extends Sprite { 
    private var fillColor:uint; // with alpha 
    private var lineColor:uint; 
    private var lineThickness:Number; 
    private function drawHouse():void { 
     // drawing house 
     this.graphics.clear(); 
     this.graphics.lineStyle(lineThickness,(lineColor & 0xffffff), 
      Number(lineColor>>>24)/255); // alpha is 0..1 
     this.graphics.beginFill((fillColor&0xffffff), 
      Number(fillColor>>>24)/255); 
     this.graphics.circle(0,0,20); // *le perfectly drawn house code 
     // actually here go graphics commands to draw a house via lines/curves 
     this.graphics.endFill(); 
    } 
    public function TheHouse() { 
     lineColor=0xff000000; 
     fillColor=0xffffffff; 
     lineThickness=1.0; 
     drawHouse(); 
    } 
    public function set outlineColor(value:uint):void { 
     if (lineColor==value) return; 
     lineColor=value; 
     drawHouse(); 
    } 
    // similarly do other setters 
} 
+0

哇,謝謝!這對我幫助很大。 ddnt知道你可以用圖形,我把圖形設置爲動畫片段,所以我只是把它們替換成正確的?再次,非常感謝。 :) – 2013-03-20 09:24:26

+0

您可以創建一個僅包含代碼的自定義類,然後擴展您所需的任何內容並對其圖形執行任何操作。當然,這需要很多代碼才能用moveTo()和curveTo()或lineTo()來填充圖片。但是,您可以嘗試在現有的MovieClip上調用'graphics.readGraphicsData()'並檢查它,這樣您就可以在只更改顏色或厚度的情況下重現您的手繪材質。 – Vesper 2013-03-20 09:32:09

相關問題