FLEX学习笔记

Flex学习笔记(一) Flex学习笔记(一) 一、 flex项目的新建、运行、工作空间界面、编辑器、视图(源码和设计)  1  Flash builder 可以选择flex sdk不同版本。  2  包资源管理器、源代码视图和设计视图按钮、打开透视图按钮等的使用。  3  工作空间。各种透视图之间的切换(窗口或右上角调试)  4  运行应用程序确保 项目下的自动构建打开(这样flex会不断检查保存的文件并 阅读详情

一、PopUpManger 是专门处理弹出窗口的对象。

1、addpopup(被弹出的窗口,其父对象(如this),model(true/fasle 是否让父对象失去交互能力)

其下的 popupbutton 这个按钮的弹出的内容要用 new 弹出的对象

2、popupmenubutton,指定datapriva时,内容为XML时,要加上  showRoot="false" 

    菜单的事件为 item.click 可用 evt.label来接收选择的菜单名称。

 

二、导航控件的子级元素必须是容器类

 

三、ViewStack每次只有一个容器是可见的,需要用AS来控件切换里面的容器。用 vew_1.selectchild=xxx哪个容器

 

四、表单验证

<mx:stringvalidator source={文本控件} property="text" ...../>

 

五、ComBox控件的弹出或收回,都会分派 DropdownEvent 的OPEN和CLOSE事件

 

六、可以用来作为itemRender的组件有一个共同的特点,那就是拥有一个名为 data 的属性,FLEX是通过"data"属性将数据传递给 itemRender的。

 

七、Alert组件

alert.show(文本,标题,ALERT.YES|ALERT.NO,窗口居中的参照对象(this),关闭后的函数用于捕捉用户选择,图标,默认选择的按钮)

其接受的事件是 CloseEvent

 

八、DataGrid自定义 itemrenderer 步骤[]

1、创建一个自定义组件 mx:checkbox,并定义一个函数用于状态改变时,向外派发事件。

2、自定义控件中的函数用 this.parentapplication.dispatchevent(new 自定义的事件(data,chk.selected)

parentapplication. [指向应用程序的application]

3、自定义事件 cartEvent()

cartEvent:Event{

定义要让事件接收者要接收的变量var1,变量var2

function 构造函数(_data:object,_isvar2):void{

var1=_data;

var2=_isvar;

super("事件名") -------- 事件的名称

}

在其构造函数中,定义了参数,参数赋给事件的变量,当接收函数接收这个事件时就可以访问事件中定义的变量了

 

4、在主程序中的initApp()中监听事件

addEventListener("事件名",处理函数)

 

5、在处理函数中接收 evt中的变量并处理

evt.var1

 

另一种方法:

直接在DataGrid的列下定义

<mx:itemRenderer>

    <mx:Component>

          <mx:LinkButton 内部控件  click="outerDocument.buttonDel()">

        //调用外部的函数,必须用 outerDocument

    <<mx:Component>

</mx:itemRenderer>

 

示例:

 // Define event listener for the itemEditEnd event.

            private function getCellInfo(event:DataGridEvent):void {

               

                // Get the cell editor and cast it to TextInput.

                var myEditor:TextInput =

                    TextInput(event.currentTarget.itemEditorInstance);

               

                // Get the new value from the editor.

                var newVal:String = myEditor.text;

               

                // Get the old value.

                var oldVal:String =

            event.currentTarget.editedItemRenderer.data[event.dataField];

           

                // Write out the cell coordinates, new value,

                // and old value to the TextArea control.

                cellInfo.text = "cell edited./n";

                cellInfo.text += "Row, column: " + event.rowIndex + ", " +

                    event.columnIndex + "/n";

                cellInfo.text += "New value: " + newVal + "/n";

                cellInfo.text += "Old value: " + oldVal;

            }                              

 

7、DataGrid的选择项可由 selectitem.data 得到后面加上 selectedItem.data.字段名。可得到此字段的值

     datagrid 的 dataprovider 可由xmllistcollection 得到

  

    var data_xml:XMLListCollection=dg_szjz.dataProvider as XMLListCollection;

    var data_array:Array=data_xml.toArray();

    var data_myarray:ArrayCollection=new ArrayCollection(data_array)

 

   DataGrid绑定 data_myarray 用这个

    dg_datasource=DataUtil.xmltoarray(myxmla);

     dg_szjz.dataProvider=dg_datasource.source[0].data;

 

 

 

九、dataGrid编辑功能的实现

1、在dataGrid定义中添加事件声明 itemeditend=函数名(event)

 

2、完成事件代码

chkinfo(evt:DatagridEvent

{

if (evt.reason==DataGridEventReason.CANCELLED){

return}

if (evt.dataField=="date"){

evt.preventDefault();

bg.editedItemRender.data.date=dateCell(DataGrid(evt.target).itemEditorInstance).num_year.value;

bg.destroyItemEditor();

bg.dataProfider.itemUpdataed(evt.itemRenderer.data);

}

}

 

十、设置字体

@font-face{

src:local("Arial");或者 src:url("./arial.swf")

fontFamily:myFont; 别名

fontyle:normal;

fontweight:normal;

flashtype:true} -------抗锯齿

 

十一、访问 xmllist的子节点值,在名称前要加 @,如访问菜单 evt.item@data

XMLLIST是多个XML数据的集合,根节点被忽略,ITEM节点被解析为独立的XML数据,item节点必须有一个根节点。

过滤   var myxml:XMLList=menuxml.children().(@name=="Ö÷±ä").children();

 

十二、colorPicker取得的seleceedcolor值可以直接使用

 

十三、动画并行和串行效果

1、定义并行                             定义串行

<mx:parallel id="xxx">             <mx:sequence>

动画1                                                    

动画2                                        

</mx:parallel>

 

2、使用                                      同并行

xxx.play()

 

十四、state使用及过渡动画

在window--->state 中创建,另:动画效果必须用在容器上,才能实现。

 

十五、拖曳事件

1、在initApp()中对被拖的控件添加 dragevent.drag_enter,dragevent.drag_drop 分别注册事件函数,对拖的控件注册鼠标事件函数

 

2、在被拖的控件中的鼠标事件函数中

1> 得到拖曳的对象

var tg:image =image(evt.currentTarget);

2>创建拖曳的数据源

var ds:dragsource=new dragsource();

ds.add(object,"名称)

3>创建拖曳时显示的内容

var imgpxy=new imge();

imgpxy.source=xxxx

imgpxy.width=12

imgpxy.height=12;

4>开始拖曳

dragmanager.dodrag(被拖的对象,数据源,此函数所属鼠标事件[如evt],拖曳时显示的对象)

 

5>定义进入拖曳对象的函数 [用于响应dragevent.drag_enter]

enterhandel(evt:dragevent)

                if (event.dragSource.hasFormat("img"))

                {

                    DragManager.acceptDragDrop(Canvas(event.currentTarget));

                }

-----------------将原来不允许目标拖曳的属性设为TRUE

 

}

 

6>处理鼠标入下后的事件

drophandler{

var obj:object =evt.dragsource.dataforformat("名称");

  ......处理函数.........

}

 

[注意:被拖曳的容器一定要设样式,设BoardStyle和BoardColor也亦,设空的样式名称也行]

 

 

十六、[Bindable] 主要用于绑定已经存在着组件和对象。

1、变量级别的绑定,放在变量前,只要变量值发生变化,会引起使用它的控件更新

2、函数级别的绑定,函数必须是通过 setter 和 getter 方式定义的

    在大括号中使用函数,函数的参数必须支持绑定,否则绑定不起作用

3、对象级别的绑定,用在公有类之前,此类的所有公有变量,都可以用于绑定。

 

bindproperty 绑定不存在的对象

 

绑定出现问题有3种情况

1、数据源没有被子更改。如拼写错误或数据误操作

2、绑定事件未派发出去

3、目标对象没有收到资料,所以也无法更新了。

 

十七、XML的操作

1、. 和 .. 可以直接访问XML对象的子节点

2、@ 访问某一节点的属性

 

十八、使用 HttpService 通讯

1、发送消息

<mx:HTTPService id="srv" url="list.php" method="GET"  />

 

<mx:request>

<aaa>{xxxxx}</aaa>

<bbb>{zzzzz}</bbb>

</mx:request>

</mx:HTTPService>

 

或者:

 

var par:object=new object);

par.aaa="xxxxx";

par.bbb="zzzz";

src.send(par);

 

示例:

initialize="sdk.send();"

<mx:HTTPService id="charts" url="charts_explorer.xml" resultFormat="e4x" result="chartsLoaded();" fault="populateTree()" />

  private function chartsLoaded():void

        {

            explorerTree.appendChild(charts.lastResult.node);

            populateTree()

        }

 

        //we don't use data binding because the timing of the charts loading can be off

        private function populateTree():void

        {

            compLibTree.dataProvider = explorerTree;

        }

 

var data_xml:XMLListCollection=dg_szjz.dataProvider as XMLListCollection;

 

2、接收消息

当收到服务器端的数据时,evt:resultEvent 会被触发,失败会触发 evt:faultEvent

返回的数据会存放在 resultEvent 的 result 中,类型为 Object,如果是XML格式,会解析成树形结构的对象,可以直接读取了。

 

 

resultFormat默认的值是OBJECT,可选格式还有 text

 

如果是用AS方法则写法如下:

 1> 定义 HttpService 对象

var httpser:HttpService=new HttpService();

 

2> 设置要读取的外部文件的路径,添加事件监听

httpser.usr="http://xxxx/a.asp"

 

3>定义其使用的方法

httpser.method="POST"

 

4>为其定义成功,失败监听事件

httpser.addeventListenner("result",resultHandelr); //事件为 ResultEVENT

httpser.addeventListenner("fault",failHandelr);  //事件为 FailEvent

 

5>为其定义参数

var par:object=new object);

par.aaa="xxxxx";

par.bbb="zzzz";

src.send(par);

 

6>在监听函数中用 evt.result得到返回值,如果返回值想转换成OBJ,直接将XML文件传过去就OK了

employeesService.removeEventListener(ResultEvent.RESULT,resultHandler);

     employeesService.addEventListener(ResultEvent.RESULT,insertItemHandler);

     employeesService.method = "POST";

    params = {"method": "InsertEmployee", "id": NaN, "firstName": inputFirst.text,

               "lastName": inputLast.text, "officePhone": inputPhone.text};

     employeesService.cancel();

     employeesService.send(params);

 

var xmllist:XMLList=XMLList(xmla)

        var myxmllist:XMLListCollection=new XMLListCollection(xmllist);

        var data_array:Array=myxmllist.toArray();

    var data_myarray:ArrayCollection=new ArrayCollection(data_array)

        

 

7、在客户端对用户转入的参数进行解析,分别执行增,删,改

 

 

十九、WEBSERVICE

1、定义请求

<mx:WebService

     id="userRequest"

     wsdl="http://localhost:8500/flexapp/returnusers.cfc?wsdl">

 

    <mx:operation name="returnRecords" resultFormat="object"

     fault="mx.controls.Alert.show(event.fault.faultString)"

     result="remotingCFCHandler(event)"/>

    <mx:operation name="insertRecord" result="insertCFCHandler()"

         fault="mx.controls.Alert.show(event.fault.faultString)"/>

 <mx:request>

<aa>{aa}</aa>

<bb>{bb}</bb>

</mx:request>

</mx:operation>

</mx:WebService>

2、发送请求

ws.函数名.send()

 

3、接收请求

返回的数据会存放在 resultEvent 的 result 中,类型为 Object,如果是XML格式,会解析成树形结构的对象,可以直接读取了。

 

客户端传过来的VO类在JAVA中被转换成MAP类型

服务器返回的HashMap类型被自动转换成 ArrayCollection类型。其无法参与数据绑定,需转换成VO的类型。如

for (var i:* in obj)

{

 this[I]=obj[i]

}

 

AS3 支持不定个数的参数传递 用 ...参数就可以了,在静态函数中,只能访问类的静态变量和静态函数,而无法访问类的成员变量和成员函数。因为成员变量和函数只存在于类的实例中。

dotest(s:string,... rest){

for (var i=1 ;i<rest.lenght;i++){

trace(reset[i])                

}

数组的push可以传二维进去

myarr.push(["jyrq",str_date])  

 

 

如果是用AS方法则写法如下:

1> 定义 webservice 对象

2>指定其wsdl属性

3>调用其方法 loadwsdl() [亦可直接用 loadwsd("xxx.asmx?wsdl")]

4>注册其成功与失败函数 [同 HttpService]

5>ws.函数名(参数1,参数2)

当参数1,为一实体类时,。NET会接收成什么啊?

6> 在监听函数中用 evt.result得到返回值

 

接收过来的值要用 XML()进行转化 用 as 是不行的,会报错

 var myxml:XML=new XML()

 myxml=XML(evt.result) ;

 

 

二十、读取服务器文本文件,XML

var urlload :urlloader();

urlload.dataFormat=dataformat.varlables; -------------data为ojbect型

urload.load(new urlrequest("xxx.txt"))

 

调用 load()方法后,flash会读取URL的数据填充urlloader.data.完成后会发出 complete事件,此时设定处理函数来处理。loader.addeventlistener(Event.COMPLETE,处理函数)

 

处理函数写法

var loader:URLLoader=URLLoader(evt.target);

for (var i:string in loader.data)

{

xx=loader.data[i]

}

或者

function xmlLoaded(evtObj:Event){

myXML=XML(myLoader.data); 或者  var dataXML:XML = XML(event.target.data);

 

trace("数据装载完成.");

trace(myXML);

}

 

----如果知道名称,可以直接用

load.data.变量名

 

XML的读取直接设置 dataformat .Text ------------------ data为 string 类型

XMLLIST可以累加的

var xList:XMLList =myxml2.children()+myxml3.children()+myxml;

     

 

二十一、ShareObject

1、创建或打开共享对象

var exp:SharedObject =new ShareObject.getLocal("expm");

 

2、添加数据到LSO上

exp.data.变量="xxxx"

 

3、保存LSO到客户机上

var aa:string=exp.flush()

该方法出错可throw,但 shareobjectflashstatus.pending[即本机空间不够]和.flushed[用户没分配本地空间]不会抛出需判断

try{

}

 

4、从共享对象中读取数据

前提是打开了共享对象

if (exp.data.previouslyviewed) ---------如果是第一次读

else

{

exp.data.previouslyviewed=true

exp.flush();

}

 

5、删除整个共享对象

前提是打开了共享对象

exp.clear();

 

 

二十二、MENUBAR

如果只要显示一项用 <menu label="xx"> 其下是子节点就可以了

如果显示多个,则要用 xmllist ,最前最后要用 <> 和 </>

得到单击事件

if (event.item.@data != "top") {

 Alert.show("Label: " + event.item.@label

 

二十三、自定义格式化字符串

 

1、要导入 Formatter和SwitchSymbolFormatter类

2、类要继承于 Formatter

3、类的构造函数中要调用 super()

4、覆盖 override format()方法

 

使用

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

    xmlns:MyComp="*">

 

    <!-- Declare a formatter and specify formatting properties. -->

   

    <MyComp:SimpleFormatter id="upperFormat" myFormatString="upper" />

    <!-- Trigger the formatter while populating a string with data. -->

    <mx:TextInput id="myTI" />

   

    <mx:TextArea text="Your uppercase string is {upperFormat.format(myTI.text)}" />

 

</mx:Application>

 

二十四、自定义校验

1、定义

1>  导入.Validator 类的 validator 和 ValidationResult

2>  类要继承于 Validator

3> 类中定义一个数组供 doValidation()返回数组值   private var results:Array;

4> 构造函数中调用 super();

5> 覆盖 override doValidation():Array 方法

并定义如下代码:

            var fName:String = value.first;

            var mName:String = value.middle;

            var lName:String = value.last; 

 

            // 清除返回数组

            results = [];

 

            // 用父类产生的结果填充返回数组,如果父类调用的长度>0 ,就返回错误。

            results = super.doValidation(value);       

          if (results.length > 0) return results; 

            

        // 进行自己的判断。如果有错误,就用 push 压入数组。

        // Check first name field.

            if (fName == "" || fName == null) {

                results.push(new ValidationResult(true,

                    "first", "noFirstName", "No First Name."));

                return results;

            }

           

            // Check middle name field.            

            if (mName == "" || mName == null) {

                results.push(new ValidationResult(true,

                    "middle", "noMiddleName", "No Middle Name."));

                return results;

            }

 

 说明:ValidationResult说明如下:

ValidationResult(isError:Boolean, subField:String = "", errorCode:String = "", errorMessage:String = "")

results.push(new ValidationResult(true, null, "tooYoung", "You must be 18."));

 

 

2> 使用

MyComp:NameValidator id="nameVal"

        source="{person}" property="custName"

        listener="{firstInput}"/>  

   

    <mx:Button label="Validate" click="nameVal.validate();"/>

 

 

3>可以取代默认事件。

<mx:Validator id="reqValid" required="true"

        source="{fname}" property="text"

        valid="handleValid(event)" invalid="handleValid(event)"/>

 

private function handleValid(eventObj:ValidationResultEvent):void {

                if(eventObj.type==ValidationResultEvent.VALID)   

                      。。。。。。。。。

        else

                    submitButton.enabled = false;

            }

 

 

二十五、DataGrid过滤及排序

过滤在弹出窗口的回调函数中指定,arraycollection的filterfunc就可以了,此函数会循环DATAGRID的每一条记录,看是否返回满足条件,如果代码返回TRUE就表示满足过滤的条件

 

 

 

 

 

二十六、为自定义组件添加属性

[Inspectable(defaultValue="请在此指定图片")]

      public function set img_source(val:String):void {

        str_img = val;

          }

如果要得到属性定义一个 get 函数即可。

 

 

二十七、回调函数用法

回调函数用于一个窗口向另一个窗口传值。所以首先要将A窗口传给B窗口定义的一个 object对象,

使用步骤:

1、在被调用的窗口中声明。要传递的

public var mainApp:Object = null;

public var callbackFunction:Function;

  //调用父窗体的方法并以参数形式返回选择结果   

   callbackFunction.call(mainApp,str_chk);    

 

2、调用窗口

 msg.mainApp=this;

msg.callbackFunction = this.userchoose;  

 

二十八、ArrayCollection 中的记录发生改变时会触发CollectionEvent 事件.CollectionEventKind.ADD:等可以知道事件类型。如addItem等

这对数据源用数组绑定的很有用处。

 

 

 

二十九、Romoting与ASP.NET通讯

1、安装vs2005,flex3,fluorine

2、在VS2005新建 fluorine网站。

如果网站以后变动了位置,在项目的flex properties 在弹出的界面中左侧选择 “Flex Server”

修改右边的Root folder 和Root URL, 左侧选择 “Flex Build Path” 修改右边的 Output folder

3、.打开Flex 3,File-->New-->Flex Proje ),

Server technology 的Application Server Type选择CodeFusion之CodeFusion Flash Remoting,

在最后一步的“Output Folder”项, 将其指向.Net项目所在的文件夹下的“Flex”文件夹(如果不存在,创建它),单击 Finish

 

 

三十、用MX:filter指定的滤镜要放在组件之内,否则会影响整个程序。

 

三十一、使用自定义光标

1、嵌入准备做光标的图片

 [Embed(source="assets/hourglass.swf")]

public var HourGlassAnimation:Class;

 

2、添加光标

 CursorManager.setCursor(HourGlassAnimation);

 

3、删除光标

 CursorManager.setCursor(HourGlassAnimation);

 

 

 

三十二、类当参数传递的方法

private static var DEFAULT_TOOL:Class = LineTool;

LineTool 必须派生于 DrawingTool ,以便生成时有个类型撒

createTool(className:Class,event:MouseEvent):DrawingTool

var newClass:DrawingTool = new className();

 

三十三、springgraph 用法

1、声明引用自定义控件

xmlns:fc="com.adobe.flex.extras.controls.springgraph.*"

 

2、定义gp用于画图

 private var gp: Graph = new Graph();

 

3、设计界面加入主控件SpringGraph  

 <fc:SpringGraph id="s" itemRenderer="control.btnimg_see">

 并在 itemRenderer 中设定要画线的控件.

 或用:

<fc:itemRenderer>

    <mx:Component>

    <mx:VBox backgroundAlpha="0.3" backgroundColor="0x444444"

    paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5">

    <mx:Label text="{data.id}" fontSize="{outerDocument.fontSizeSlider.value}"                      color="0xffffff" textAlign="center"/>           

     </mx:VBox>

   </mx:Component>

</fc:itemRenderer>

 

4、在按钮中生成新的item供加入.

private function newItem(name,title,x,y): void {

  var item: Item = new Item(new Number(++ic).toString());

 item.name = name;

 item.title = title;

 item.x = x;

 item.y = y;

gp.add(item);

prevItem = item;

s.dataProvider = gp;

}  

 

6、定义画线方法,去线方法

添加链接线     

private function linkItems(fromId: String, toId: String): void {

              var fromItem: Item = gp.find(fromId);

              var toItem: Item = gp.find(toId);

              gp.link(fromItem, toItem);

              s.dataProvider = gp;

}     

取消链线       

private function unlinkItems(fromId: String, toId: String): void {

              var fromItem: Item = gp.find(fromId);

              var toItem: Item = gp.find(toId);

              gp.unlink(fromItem, toItem);

              s.dataProvider = gp;

           }  

删除要链线的对象,其线也会消失。

           public function removeItem(id : String) : void {

              var item : Item = gp.find(id);

              gp.remove(item);

              s.dataProvider = gp;

           } 

 

 

7、在合适的事件中画线

    s.listenDrawLine();

    s.addEventListener(MouseEvent.CLICK,mouseDownListener);

 

8、进行处理。

private function mouseDownListener(e:MouseEvent):void

   {

      try {

        if(e.target.parent is Image) {

       if(pos==1) {

           arr[pos] = e.target.parent.name;

       Alert.show("È·ÈÏÁ¬Ïߣ¿","Ìáʾ",3,null,check,null,Alert.YES);

                      //CursorManager.removeCursor(cid);

                       }

                   else {

                       

                          arr[pos] = e.target.parent.name;

                           pos ++;

                      }

              }

        }

        catch(e) {}

        }

       

        private function check(e: CloseEvent) : void {

        if(e.detail == Alert.YES) {

               linkItems(arr[0],arr[1]);

           }

           pos = 0;

           s.removeEventListener(MouseEvent.CLICK,mouseDownListener);

           s.restoreLink();

        }

 

 

 

三十三、brokenImageSkin

图片无法加载时显示的图片

  <mx:Style>

        Image {

            brokenImageSkin: Embed("assets/flex_logo.jpg");

        }

    </mx:Style>

 

 

三十四、Ti

leList 中的数据源必须用  <mx:Model id 来加载 xml文件

 

 

 

Flex 布局学习笔记 学习网址:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html Flex弹性布局 1.任何一个容器都可以指定为 Flex 布局 Webkit 内核的浏览器,必须加上-webkit前缀。 .box{ display: -webkit-flex; /* Safari */ display: flex; } 注意,设为 ... 阅读详情

相关推荐

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1593

mainapp Androidlua

基本代码 activity.setTitle('Title')--设置窗口标题 activity.setContentView(loadlayout(layout))--设置窗口视图 activity.setTheme(android.R.style.Theme_DeviceDefault_Light)--设置主题 activity.getWidth()--获取屏幕宽 activity.getHe...

bmzk123的博客 2090

K-means在关键词聚类中的尝试

K-means在文本聚类中的尝试 K-means算法是无监督的聚类算法。它的算法思想是:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。 K-means算法的关键点在于: 初始k个聚类中心的选择 距离的计...

BigPig_LittleTail的博客 5572

Vue-Cli脚手架文件main.js、App.vue、index.html、index.js详解

最近在学习Vue,学习Vue必定离不开vue-cli脚手架的运用,这里给大家梳理一下vue-cli的相关文件以及其调用关系。 话不多说,直接上图(笔者从网上找的) 使用到vue项目的文件包括一个.html,两个.js,两个.vue文件,关系如上图所示 1、index.xml为vue项目默认首页,里面默认引用了app.vue根组件 2、main.js为vue项目的入口文件,加...

weixin_30603633的博客 2322

科技与伦理的平衡点:人类计算的伦理

科技与伦理的平衡点:人类计算的伦理 关键词 科技与伦理 人类计算 隐私问题 道德决策自动化 公平性与偏见 法律与社会责任 摘要 本

AI天才研究院 1162

uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录),uni-app开发H5第三方微信授权登录的实现,uniapp如何实现微信授权登录,公众号H5页面接入微信登录流程,uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级

✅ 精选推荐文章 1万+

图片 视频播放

布局信息依赖  和权限// okhttp相关依赖 compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' // retrofit相关依赖 compile 'com.squareup.retrofit2:retrofit:2.0.2...

Jonly_W的博客 8636

车辆重识别/再辨识数据集: Vehicle Re-ID Datasets Collection

车辆数据库 1.VERI-Wild: A Large Dataset and a New Method for Vehicle Re-Identification in the Wild (2019-CVPR) 数据库名称:VERI-Wild 论文:链接 数据库描述: 车辆图像由一个包含174个摄像机,拍摄范围覆盖超过200平方公里的市区CCTV系统拍摄。摄像机是24小时连续拍摄30天,其长时间的...

AI炼丹师 6854

Android 7.1.2(Android N) Android系统启动流程

system/core/rootdir/ init.rc init.zygote64.rc system/core/init/ init.cpp init_parser.cpp signal_handler.cpp frameworks/base/cmds/app_process/ App_main.cpp frameworks/base/core/jni/ AndroidRunti...

April_bin的博客 2508

滑块逆向及流程分析

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

pyzzd的博客 8004

恶劣天气下的分割鲁棒性:雨雪雾干扰消除

恶劣天气下的分割鲁棒性:雨雪雾干扰消除​ ,人工智能,计算机视觉,大模型,AI,本文围绕恶劣天气下语义分割鲁棒性及雨雪雾干扰消除展开,分析了雨雪雾对图像和分割任务的影响,介绍了基于图像增强、深度学习等现有解决方法,以及针对不同干扰的具体方案,还探讨了提高分割鲁棒性的策略、实验评估情况,指出当前面临复杂天气、数据缺乏、实时性等挑战,并展望了端到端模型、无监督学习等未来发展趋势,为该领域研究提供了全面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

[Flex] Flex 控件&类 的自定义事件添加

NewClass源码摘要:本文记录了Flex中给控件和类加入自定义事件的步骤。 正文:虽然网上已经有很多类似的资料了, 不过还是想自己写一篇,作为存档。 (一)给类A加入自定义事件FavPathDelEvt,Appliaction调用A,并响应A的事件 (1)写一个自定义事件as类,类中附带参数Index。 packageNewClass { importflas...

weixin_30622107的博客 157

Nvidia Driveos SDK/PDK介绍

NVIDIA DRIVEOS SDK/PDK介绍

u011803281的博客 2173

CSS flex布局学习笔记

该笔记的一些文字描述仅仅只是我个人对于属性和参数的理解,会于书上描述的有所偏差,如果有错误的地方,请各位大佬批评指教。space-around:副轴把剩余空间平均分配给盒子。space-around:把剩余空间平均分配给盒子。space-between:副轴两边对齐。space-between :两边对齐。flex-start:副轴起点对齐。flex-start:副轴起点对齐。flex-start:起点对齐。flex-end:副轴终点对齐。flex-end:副轴终点对齐。flex-end:终点对齐。

TikGuy的博客 536

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Flex布局学习笔记

给父元素添加一个display属性,并且将取值设置成flex其父元素叫做伸缩容器,其本身叫做伸缩项目。

2401_88410373的博客 841

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【笔记】【CSS】flex布局学习笔记

该笔记为个人学习Flex布局时,学习【菜鸟编程Flex 布局语法教程】,进一步的简单整理的个人学习笔记。

Code for fun !!! 【博客主要为本人服务】 276

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

弹性盒学习笔记(display:flex/inline-flex;)

文章目录弹性盒学习笔记(display:flex/inline-flex;)一.flex容器属性(给父级元素添加的属性)1、display:flex、inline-flex2、flex-direction属性 决定主轴的方向(即项目的排列方向)3、flex-wrap属性,定义子元素是否换行显示4、 flex-flow5、 justify-content属性 定义了项目在主轴()上的对齐方式。6、a...

lwr3379966的博客 2421

《Flex3权威指南》学习笔记——阶段一(1-6)

http://bbs.9ria.com/viewthread.php?tid=59754&rpid=510287&fav=yes&ordertype=0&page=1#pid510287flex自学的初学者,贴下《Flex3权威指南》学习笔记(不是教程),有以下几个目的:1.寻找正在学习《Flex3权威指南》的朋友,相互学习交流(自学是有点无聊)2.巩固所学知识,并激励自己坚持下去(自学很难坚持到底,没人管啊!)3.暴露学习过程的问题,希望能得到朋友的指点(多谢!)4.若能对菜鸟有用,也算体现共享精神

As3.0 Flex——asheng1213 760

flex布局与grid布局学习笔记

条件满足一直用最大值,条件不满足用中间值,如果剩下的距离不足以显示距离的大小,则使用最小值。在属性中提供了fr关键字,若前一个值为1fr,后一个值为2fr,则后者为前者的两倍。grid-row-start横向网格线开始占位。grid-row-end横向网格线结束占位。grid-column-start纵向网格线开始占位。列间距属性:grid-column-gap:30px;行间距属性:grid-row-gap:20px;

2302_81119658的博客 777

Flex入门学习笔记

一、如何创建Flex应用程序步骤如下:1,选取预定义的可视化组件2,在用户界面上添加组件3,使用styles和skins自定义应用程序界面4,增加事件处理和脚本处理代码,控制应用程序行为5,连接数据和通讯服务6,Build和Run应用程序   二、ActionScript3 语言基础 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;mx:A...

风之迹 (不积跬步,无以至千里) 265

CSS3的flex弹性盒子学习笔记

前言 flex布局挺重要的,尤其是在移动端布局中使用的更多。flex布局在面试中也是重点,我在腾讯一面的时候,持续一个小时,其中flex布局大概占了10分钟,面试官问的非常细、非常深入,好在我在flex布局这块理解的也比较深刻,还让面试官满意。 父元素 flex-direction:row | row-reverse | column | column-reverse default:row ...

张印的博客 557

Flex学习笔记

一 盒子模型已经不适用于某些特殊的布局, PS*dispaly规定元素应该生成的框的类型 .Class_{ dispaly: inline;//将元素指定为行内元素; dispaly: list-item;//将元素指定为列表显示; dispaly: flex;//弹性布局; } flex弹性布局为盒子模型提供最大的灵活性,所有容器都可以指定为flex弹性布...

bokerr的博客 206

《Flex3权威指南》学习笔记——阶段二(7-10课)(2010-8-8)

<br />《Flex3权威指南》学习笔记——阶段二(7-10课)(2010-8-8)<br />☆☆☆☆☆☆☆☆<br />这四课的内容对于新手来说越来越难了,但这些知识也越来越有用,所以学习笔记一定要记好。<br />☆☆☆☆☆☆☆☆<br />http://bbs.9ria.com/thread-60595-1-1.html

As3.0 Flex——asheng1213 569

flex布局学习笔记

(1)flex-shrink属性:flex-shrink属性默认值为1,当子元素宽度超过父元素时,会自动缩小子元素,否则不会自动缩小子元素,导致子元素超过父元素宽度。(4)使用nth-child()设置元素宽度:理论上将元素一设置为其他元素宽度的100倍,但是这里没有实现,因为要保证容器内元素可读,所以其他元素至少为最小宽度。(3)使用nth-child()设置某个元素的宽度:这里将第一个元素的宽度设置为50px+6/10*剩余空间的大小,剩余空间元素1分到6份,其他元素各分到1份。

qq_54581101的博客 2193

Flex 学习笔记

Flex 是一种强大的 CSS 布局模型,它提供了灵活且强大的排列和对齐方式。通过掌握基础概念和常用属性,我们可以轻松实现各种复杂的布局需求。希望本篇学习笔记对您理解和掌握 Flex 布局有所帮助。

m0_72410588的博客 260

W3C flex学习笔记

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性。它对于那些特殊布局,比如,垂直居中就不容易实现。flex旨在提供一种更有效的方式来布局、对齐和分配容器中项目之间的空间,即使它们的大小未知或动态变化.Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。.box{行内元素也可以使用Flex布局。.box{

surgicalMask的博客 2000
上一篇: 我常用的特效
下一篇: TextArea滚动到最下方
wangwan
博客等级 码龄25年 12粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值