在方法中如何获取手工new的对象(laszlo)

请问通过按钮名称(bn1)获取到canvs中的bn1对象。然后修改其一些属性!
<canvas title="Test Graph" debug="true"  >
    <include href="lib/boxview.lzx"></include>
    <include href="lzmodules/sfgbox.lzx"/>
 
  <dataset name="validusers" src="resources/test.xml" type="http" request="false"></dataset>
  <datapointer name="userspt" xpath="validusers:/digraph">
    <method event="ondata"><![CDATA[
      //Debug.write("userdata loaded!");// 
      canvas.drawv.drawgraph();   
    ]]></method>
  </datapointer>
  <method event="oninit"><![CDATA[
    validusers.doRequest();
    //Debug.write("validusers.doRequest()");//     
  ]]></method>
    <boxview  width="100" height="200" name="drawv">           
        <method name="drawgraph"><![CDATA[
            //Debug.write("Start drawgraph");
            var graph = validusers.childNodes[0].childNodes[0];
            //TODO 定义画布属性
            var bb = graph.getAttr("bb").split(",");
            var xmax = bb[1];
            var ymax = bb[3];
            var nodes = validusers.childNodes[0].childNodes[1];
            //TODO 节点
            var color = nodes.getAttr("color");
            for(var i=0;i<nodes.childNodes.length;i++){
                var posxy = nodes.childNodes.getAttr("pos").split(",");
                var x1=posxy[0];
                var y1=posxy[1];
                //Debug.write("x1:"+x1 + " :y1: "+ y1);
                //Debug.write("drawRect"+i);
           
                var width =nodes.childNodes.getAttr("width")*72;           
                var height =nodes.childNodes.getAttr("height")*72;
                //Debug.write(x1 + " : " +y1 +" : "+ width +" : "+ height);
                this.beginPath();

                var label = nodes.childNodes.getAttr("label");
                //this.drawRect(x1 - (width/2.0),ymax-y1-(height/2.0),width,height,label);
                this.globalAlpha = 1;
                var ncolor = nodes.childNodes.getAttr("color");
                //Debug.write(ncolor);
                this.strokeStyle = color;   
                if(ncolor!=undefined){
                    this.strokeStyle = ncolor;                       
                }         
                  this.stroke();
                //Debug.write(nodes.childNodes.getAttr("width")*72);
                //TODO 用view 画
                //var v = new LzView();
                //v.setAttribute()
                var myview =new button();
                myview.setName(label);
                myview.setAttribute("text",label);
                myview.setX(x1 - (width/2.0));
                myview.setY(ymax-y1-(height/2.0));
                myview.setWidth(width);
                myview.setHeight(height);
                myview.setBGColor(red);
                Debug.write(myview);
            }
           
                     ]]></method>
           
    </boxview>   
     <view name="aa"  x="420" y="20" >
        <edittext  name="node" x="300" y="20"></edittext>
        <button  onclick="show()">
        clike me
        <method name="show" ><![CDATA[
            var txt = canvas.aa.node.getAttribute("text");
            Debug.write(txt);
            canvas.drawv.aa.node.setAttribute("color",red);
/*
* 这儿如何得到  drawv中 drawgraph 上new的button;
*/
        ]]></method>
      </button>
    </view>
</canvas>
最后编辑xiaohuajx 最后编辑于 2007-09-18 10:21:30