getDefinitionByName 的使用方法

 

介绍:

     getDefinitionByName是flash.utils下面的,属于工具包类。正如函数名称是通过Name来获得该名称所对应的类对象,意思就是说通过一个类的名称能够获取到该类对象,从而通过该类对象声明一个该类的实例对象。注意该函数中的参数name=类路径+类名称。

 

实例:

     var btncls:Class = getDefinitionByName("mx.controls.Button") as Class ;

     var myBtn:Object = new btncls() ;

     myBtn.label = "我是通过名字获得类实例声明出来的BTN" ;

      this.addChild( myBtn as DisplayObject ) ;

 

应用:

     现在在flex里面要用到在flash cs3 设计一批元件,当然可以通过导出元件的swc然后添加到工程下面的libs下,当需要在flex里面把这些若干元件当成库来获取库中的单个元素时,我们就可以通过geDefinitionByName函数来实现,具体实现步骤为下:

     第一:在flash cs3中准备好若干个元件,并为元件添加链接名称(最好链接名称和元件名称一样)。然后在场景的第一帧里面添加代码如下:

      function getClassByName(cname:String):Class  //cname即为元件的链接名称。
      {
         var mc:Class =  getDefinitionByName(cname) as Class;
         return mc;
      }

      然后生成swf。

      第二:将swf文件放入工程中,用loader将swf文件导入到程序中。在loader导入成功(触发Event.Complete事件)后,loader.content即为swf。然后访问对象的getClassByName()来获取swf中的元件。存入库中,以备后用。

      代码如下:

      var nameArr:Array = ["烛光","菊花"] ;

      var mcArr:Array = new Array() ;

      function init():void

      {

            var loader:Loader = new Loader() ;

            loader.contentLoaderInfo.addEventLinstener( Event.COMPLETE , onComplete  ) ;

            loader.load(new URLRequest("assets/firelib.swf")) ;

       }

       function onComplete(evnet:Event):void

       {

          for(var i:uint=0 ; i<nameArr.length ; i++)

          {

             var cls:Class = Object( event.target.content).getClassByName(nameArr[i]) ;//getClassByName()即为swf场景中定义的函数。

             mcArr.push( { name:nameArr[i] , content:new cls() } ) ;

           }

       }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用 ScriptEnv 编写的 HFSS 脚本,用于输出每个对象的欧姆损耗。你可以将此脚本应用于任何 HFSS 工程中: ```vb Sub OutputOhmicLosses() Dim oProject As Project Dim oDesign As Design Dim oModule As Module Dim oEditor As Editor Dim oDefinition As Object Dim oSolution As Object Dim oModuleSolution As Object Dim oFields As Object Dim oReport As Object Dim oOutput As Object Dim oDataset As Object Dim oResult As Object Dim oValue As Object Dim sOutputFile As String Dim sObjectName As String Dim dOhmicLoss As Double ' 获取当前工程对象 Set oProject = ScriptEnv.Project ' 获取当前设计对象 Set oDesign = oProject.GetActiveDesign ' 获取模块对象 Set oModule = oDesign.GetModule("Solutions") ' 获取编辑器对象 Set oEditor = oDesign.SetActiveEditor("3D Modeler") ' 获取定义对象 Set oDefinition = oModule.GetDefinitionByName("LastAdaptive") ' 获取解算对象 Set oSolution = oModule.GetSolution ' 执行解算 oModuleSolution = oSolution.GetModule("Fields") oModuleSolution.Solve oDefinition ' 获取场对象 Set oFields = oSolution.GetFields ' 输出欧姆损耗 sOutputFile = "C:\Output\OhmicLosses.csv" Set oReport = oModule.CreateReport "Ohmic Losses", "Fields" oReport.AddTrace "Ohmic Loss", "Ohmic Loss", False, sObjectName, Array("Domain:=","Object"), Array("SolutionName:=", oSolution.GetName()) oReport.ExportToFile sOutputFile, "CSV" ' 打开输出文件并输出结果 Set oOutput = oModule.CreateOutput("Ohmic Losses Output", sOutputFile) Set oDataset = oOutput.GetDataSets.Item(1) For Each oResult In oDataset.GetResults sObjectName = oResult.GetAsString("Object") dOhmicLoss = oResult.GetAsDouble("Ohmic Loss") Debug.Print sObjectName, dOhmicLoss Next ' 关闭输出文件 oOutput.Close ' 提示输出完成 MsgBox "欧姆损耗输出完成。" End Sub ``` 该脚本首先获取当前工程对象和设计对象,然后通过解算求解场分布。接着,脚本创建一个报告对象,并将每个对象的欧姆损耗输出到 CSV 文件中。最后,脚本打开输出文件,输出每个对象的欧姆损耗,并提示输出完成。 请注意,脚本中的输出文件路径需要根据实际情况进行修改。此外,脚本中的输出结果是通过调试窗口(Debug Window)进行输出的,你可以根据需要修改输出方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值