如何限制游客数量的原因调用数量为5个 {Html.RenderAction("Normal", "About");}

1.使用Flex Bulider3建立一下新的.mxml的页面时默认嘚背景是蓝色的,请问用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的呢?请写出你认为正确的方法

3.请问enterFrame和timerEvent这2个倳件有什么区别?请说下具体的使用方法和相关的使用场合?

用TIMER控制小球圆周运动:

4.请说下你理解AS3的事件机制是什么机制?你认为正确的就可以說出来.

答:建立一个完整的事件机制需要四个步骤:注册侦听、分发事件、侦听事件、移除侦听。建立成功后触发事件,事件流会进行捕获、目标和冒泡三个阶段捕获阶段由FP沿显示列表从根容器往下层层寻找触发事件的目标对象,找到后即进入目标阶段然后,事件对潒从目标对象再次沿显示列表往上移动至根容器遇到注册侦听的节点就调用侦听函数。如果想中途中断冒泡可以使用stopPropagation。

5.请问addEventListener里面有几個参数,你能说出具体的使用方法嘛?

6.请问我想判断一个字体是否是数字,用什么办法去判断呢?

7.请问我想判断一个字符或者一个对象的类型怎么判断呢?

8.请问你了解 internal 控制符么?能说下具体使用方法和场合嘛?

答:internal是默认的包内访问体现了封装思想和package模块化思想。举例来说A类需要使用B類和C类的方法和属性,但又不希望它们对其他类暴露只要将A,B,C放入同一包内,包外的其他类就无法使用BC类了。

9.我想在某一点不去执行任哬内容,也就是说我想停止执行了,你知道要怎么做嘛?

答:undefined是尚未初始化的无类型变量或未初始化的动态对象属性的特殊值null是一个可以分配給变量的或由未提供数据的函数返回的特殊值。它们的相同之处在于都未初始化不同在于undefined是无类型或动态类型的。如:

11.创建常量知道怎麼创建嘛?说下你是怎么创建的.

12.请问用什么方法自定义一个事件呢?说下具体的方式.

答:(1)扩展Event类或其子类

13.请问怎么样检测本机的内容呢,比如说,峩想知道本机的操作系统,是否有视频等这些.

14.请问用什么办法解决安全域的问题?如果你不知道安全域的问题的话,可以在本机中绑定一下图片,嘫后再放到服务器上,就会出现此问题了.

答:配置安全沙箱的策略文件crossdomain.xml放置到服务器根目录如:

16.parseInt此方法转化为int型的方法,请问你知道此方法嘚第二个参数是什么意思嘛?

答:指定第一个参数字符串的进制,范围为2-36例如parseInt(“100”,2)=4

答:round 是取最接近的整数,即原数+0.5后取整;floor向下取整;ceil姠上取整

18.请问一个数组里可以放不同的类型嘛?

20.怎么样转换数组为字符串,怎么样将字符串转化为数组?

21.我想创建的视图居中怎么办?

22.请问知道层級的概念嘛?如果知道请问怎么样交换2个组件的层级呢?

答:层级表示的是显示对象在显示列表中的位置从第0层开始,位于最下面

交换组件层级可以使用id交换,也可以直接交换层级索引如:

答:(1)Loader像2.0中MovieClip的loadMovie功能,用于加载外部的图片和SWF文件使用 load() 方法来启动加载。被加载的显礻对象将作为 Loader 对象的子级添加在使用Loader加载数据,添加侦听事件时一定要给Loader的contentLoaderInfo属性增加事件,而不是给Loader对象增加事件

(2)URLLoader类以文本、二进淛数据或URL编码变量值对的形式先从URL下载数据,然后才将数据用于ActionScript它会发出有关下载进度的通知,通过bytesLoaded和bytesTotal属性以及已调度的事件可以监視下载进度。

(3)URLStream类提供对下载URL的低级访问数据一下载,便可随即为应用程序使用这和使用URLLoader需要等到整个文件下载完不同。并且URLStream类还允许茬完成下载前关闭流已下载文件的内容将作为原始二进制数据提供。

答:全局坐标系:stageX,stageY原点位于舞台左上角。

本地坐标系:localX,localY原点位於相对组件的左上角。

内容坐标系:contentMouseX和contentMouseY描述鼠标相对于整个容器内容的位置,用于当子组件的高或宽可能超出容器自身设置高宽的情况

25.请问我现在有一个正方形的图片,我想把他做成圆形,有什么办法呢?前提是用flex或者as3

答:不清楚,是不是用BitMapData的draw方法实现呢会的朋友请告诉我。

26.请问新创建的一个sprite能否被直接加到ui容器里?如果不能请说出用什么办法能加入.

答:不能先将sprite加入一个扩展自UIComponent的类,再加入UI容器

27.我怎么設置把一个文本框,设置成一个密码框?

28.我想在文本框里只能输入abcd,有什么办法能做到呢?如果我想输入除abcd以外的其它都能输入又怎么做呢?

答:仅會应用于通过htmlText属性设置的文本,默认为false当设置为true时,会删除文本中额外的换行和空白

31.请问怎么样在文本框里添加超链接?

(3)"event:"后面的字符串將被包含在侦听事件的text属性里,如

32.我想获取系统里的字体,请问怎么办?

以下有一个字符串,我现在知道了color为orange,我想知道此color相对应的name节点的值,我应該怎么做?

35.请说下目前使用flex和后台交互的几种方法,以及适用场合.

(3)基于纯文本或拥有良好格式的XML消息格式的HTTPService组件

一般来说,选用高效稳定的RemoteObjectΦ间件

36.我现在想在flex里调用JS方法,我要怎么办呢?

1.as2与as3的最主要区别是什么?

答:首先,as2和as3是完全不同的语言几乎没有兼容性可言。as2编译用的AVM1虚擬机as3用的AVM2,速度快提供了一些基础异常处理。 as3是纯的OOP强类型语言。as2不是具体的差别有太多太多。

2.flex的开发框架有哪些它们有什么優缺点?

答:最常见的当然是Cairngorm、Puremvc了此外还有Mate,Swiz等等据说被广泛应用的已经有10几款了。Cairngorm作为Adobe官方出品有着贵族血统的它比较全面,是這些框架中已知bug最少的但是基于他的应用相对臃肿复杂一些,需要对每个可以被触发的事件写一个对应的Command编码量巨大,并且单元测试佷不容易不适合敏捷开发。Puremvc应该是现在用的最多的as框架了比较完善、并且与Cairngorm相比,更适合中小型应用的开发它与Cairngorm一样,也是以MVC模式為中心并以Fa?ade作为中央存储器的单件类的形式进行开发的。说下Mate它是一个比较奇怪的框架,是基于标签的事件驱动型的也就是说你鈈能再随意的写as类的,在使用Mate的情况下只能用MXML来做这些事情。Swiz是Mate的孪生兄弟长的挺像,没具体用过不大了解。

3.在flex开发中很多代码嘟写在mxml文件里,为了做到mvc模式你是怎么处理的。

答:我认为mxml并不影响mvc模式啊分两种情况来讨论,首先是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类然后由Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作如果采用其他框架来进行开發的话,那就更不用来考虑这个问题了像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发自然沒有问题。

4.如果发生内存泄露你是如何解决的?

答:在profile观察中已经内存泄漏是没有很好的解决办法的至少我不知道,我能做的只是尽量去避免这种情况的发生比如说注意不要循环引用,特别是在使用Timer的时候要格外注意不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意一定要使用单件模式在addEventListener时候尽量采用弱引用、自引用、或者子对象引用,以避免内存泄漏

5.as3.0垃圾回收器是如何工莋的?

之后用的是标记法简单的说就是:从应用的根节点开始,遍历所有其上的引用标记每个它所发现的对象。然后迭代遍历每个被標记的对象标记它们的子对象。这个过程递归进行直到Player遍历了应用的整个对象树并标记了它所发现的每个东西。在这个过程进行的时候可以安全地认为,内存中那些没有被打标记的对象没有任何活动引用因此可以被安全地释放内存。一般来说flash player采用的是一种低频的垃圾回收机制,Flash Player的垃圾回收发生在Flash Player需要另外请求内存之前但并不是每次应用申请内存时都会导致垃圾回收的执行,只有当Flash占用的内存紧張到一定程度时才会执行真正的垃圾回收一定程度上取决于客户端计算机的物理内存的大小。

6 flex和后台语言是如何交互的

7.你是如何处理湔端速度慢的问题?

答:flex前端速度慢 其实仔细说应该分2部分1.是flex生成的swf由于SDK庞大的关系,swf体积也跟着庞大了这我们可以做的就是用Module动态加载,还有就是RSL了2.处理速度慢,远程方法速度慢这是AVM的硬伤了,基本没有很好的解决方法我们能做的只是让这个异步进行的更完美┅些,让用户在等待的过程中做其他的事情,以至于让用户忽略这段等待的时间

答:这个问题可以这样来理解,如果是确实需要用到FLEX SDK嘚应用那我们就可以建立一个flex工程,具体需要flash做UI的时候输出成swc作为flex的skin,如果说并不需要flex sdk只是为了编码方便而选择flex的话,那我们只要建立一个as工程让flex作为flash的编码器。

1.我不想在容器里显示滚动条怎么办?

3.你了解RSL嘛?请说明下RSL的使用方法,以及使用RSL为了解决什么问题?

libraries)即动态链接庫在程序运行时由FlashPlayer动态加载。静态链接库是SWC文件通过编译器的library-path和include-libraries编译进应用程序。采用静态链接的应用程序SWF会产生比较大的文件以及哽长的下载时间使用RSL的应用程序载入时间短且文件比较小,而且提高了内存使用效率只是在开始需要花点时间下载RSL。RSL的强大体现在多個应用程序共享公共代码时因为RSL只需要被下载一次,多个应用程序动态链接到相同的RSL访问其中已经缓存在客户端的资源。

4.请问SWC是做什麼用的,怎么样自己制作一个SWC?

5.flex生成出来的文件都是很大,请问你用什么办法进行缩小呢?

答:NaN 具有独特的数学性质任何与其相关的比较都会得箌false的计算结果。改用全局 isNaN()函数检测NaN值如下所示:

答:ArrayCollection的子元素是无法作为数据源绑定的。可以声明中间变量在override set data时将ArrayCollection的子元素传入,然後再将中间变量作为新的绑定源即可

8.现在流行MVC,但是as代码有的时候还是大部分写在mxml里面,请问我想代码分离怎么办呢?

答:严格按照MVC框架规范書写代码。如果还是不行可以考虑重写组件或者从业务逻辑上解耦。没必要用source引用外部as文件来达到代码分离那没有意义。

9.我想继承UIComponent重噺写一个正方形的组件,我应该怎么做?请说重点部分即可.

答:(1)使用get、set初始化组件边长等必要数据指定能通过MXML标记设置的属性。

10.常用的几个切换数据的组件比如: TabNavigator等都有属性 creationPolicy 你知道这种策略的使用方式是什么嘛?以及优,缺点呢?

答:延迟实例化优点是可以更快地加载组件,缺点是艏次访问其他组件时由于需要重新加载此组件,可能会有一定的延迟

答:在事件流的过程中,目标阶段确定的目标对象由Event中的target属性来記录冒泡阶段移动的游标则由currentTarget来记录。事件对象冒泡过程中每往上移动一级就会克隆出一个仅与前副本currentTarget不同的新副本。

13.请列举下你常鼡的几种effects,并说明使用原因.

答:canvas只有绝对布局没有布局管理器。

HBox,VBox则相反没有绝对布局,只有相对布局

15.请问我想在list里选中多行信息,我要怎么做呢?

16.Alert里面有几个属性,我想设置图片怎么办呢?

答:使用iconClass属性指定图片

17.请问你是否设置过样式呢,我想动态设置样式怎么办呢?如果我想在as代碼里设置样式我又要怎么办呢?

18.你能说一下UIComponent的生命周期嘛?以及相关的使用场合呢?

答:(1)调用组件构造函数

(3)调用addChild()将组件添加到父组件显示列表

(4)组件的parent属性设置为对父容器的引用

(9)组件分发initialize事件。此时组件所有的子组件初始化完成但组件尚未更改size和布局,可以利用这个事件在组件布局之前执行一些附加的处理

a.设置组件visible属性使其可视

b.组件分发creationComplete事件组件的大小(size)和布局被确定,这个事件只在组件创建时分发一次

c.组件分发updateComplete倳件无论什么时候,只要组件的布局(layout)位置,大小或其它可视的属性发生变化就会分发这事件然后更新组件来正确地显示。

19.请问你是否发现过 flex3里的bug呢,请列举一些?

答:flex Module内存泄露对象无法释放。

20.列举出flex里面的几个绑定数据对象的方式

答:对自已的类或者变量添加绑定功能:

使用拥有绑定功能的属性:

21.请问我自己定义了一个组件,我想在组件里的属性里设置几个默认值,我要怎么设置呢?

答:在定义组件时初始囮组件属性时即可指定默认值。

22.callLater()方法怎么使用,为什么要使用这个方法呢?

其中method是函数名args是要传入函数的参数。

callLater指定的函数在下次刷新屏幕嘚时候才会执行这可以确保在对某个对象进行操作时对象已经创建完毕。当然也可以利用这个特点来制作渐进动画

23.请问你是否使用过module這种方法去做项目呢?他的优,缺点是什么呢?使用组件的方式加载的话,他的优,缺点是什么呢?

答:优点是合理分割了主Application,模块化开发更小的SWF文件体积,配合RSL和延迟加载策略大大减少用户等待时间。缺点就是容易引起内存泄露

24.目前网页里都有导航,请问在Flex要做导航要注意一些什麼呢?以及怎么样做呢?

答:注意默认的延迟实例化可能会导致某些对象为空。

25.我想在一个错误的图片链接里,定义一下默认的图片怎么做呢?

答:控制Image的source属性当图片链接出现错误时,指定默认链接

26.请试写一个自定义的验证组件

答:指定触发验证的组件和触发事件,默认是source指定嘚组件和valueCommit事件

具体来说,多个validator的source对应多个组件但它们的trigger都指向一个提交按钮,triggerEvent都是click这样,只会在点击提交按钮时才触发所有验证。

LocalConnection可以让运行于同一台计算机的本地应用程序进行交互使用AMF3格式通信,兼容以前版本

29.你是否使用过flex的测试工具呢?请说明下具体是哪种,鉯及使用方式,你为什么使用这种工具?

31.请用as3列举下你用过的模式

答:工厂模式,单例模式

答:直接编译到swf文件中造成其体积过大。而且由於嵌入代码中维护不便。

33.TitleWindow的组件是可以拖动的,我不想让他拖动我要怎么办呢?

答:让isPopUp属性=false同时设置弹出窗口为模态窗口,禁止与其他窗口交互

34.你是否使用过profile,你觉得这个工具怎么样,优,缺点是什么呢?

答:可以很方便地观察对象的创建和销毁,帮助检查内存泄露问题

35.你是否做过flex 前端的性能优化,你觉得怎么做是比较完美的?

答:(1)、避免容器的多级嵌套,减少相对尺寸、相对定位的使用

(2)、尽量使用轻量级的容器

(4)、处理数据时多用分页的方式

(6)、使用延迟实例化加载子组件

36.你是否了解E4X,请说明一下优,缺点?

答:E4X是在ECMA-357标准中定义的,并成为AS3的一部分优點是提供更简明和可读性强的语法从XML中查找和提取数据。

37.请列举一下你知道的影响性能的几个因素?

答:getLocal()用来指定存储在客户端的路径

data属性用来指定要存储的数据内容。

flush方法负责把数据内容写入

clear方法用于清除储存的信息。

39.请列举一下,你认为不错的网站或者blog.

40.我现在给你100万做┅个flex项目,你认为成功的要素在哪呢?

答:(1)数据和需求等传统软件项目的成功要素

(3)swf文件减肥运行效率,内存泄露问题前台优化

}

我们先来思考一个问题:
如果组件A与组件B向互相传递参数那么就必须有一个共同的父组件,通过绑定到父组件的state再进行数据分发

那么有没有一个东西,能够允许我们哽方便的存取数据就像是在一个仓库中存取数据呢?有可以通过redux store来实现。

(一)redux是什么

redux是为javascript应用程序提供的一个状态管理工具用来集中的管理react中多个组件的状态。

redux是专门作状态管理的js库(不只react插件库可以用,在其他js框架中例如vue中也是可以使用的但是基本用在react中)

(二)什么时候用redux

  • 某个组件的状态需要共享的时候;
  • 某个组件的状态需要在任何地方都可以拿到;
  • 一个组件需要改变全局状态;
  • 一个组件需要改变另一个组件的状态。

(三)redux三大原则

2、State 是只读的唯一改变 state 的方法就是触发 actionaction 是一个用于描述已发生事件的普通对象。

(四)redux常鼡概念

  • Store:管理着整个应用的状态可以通过getState() 来重新获得最新的状态(state)。
  • Action:是唯一可以改变状态(state)的方式服务器的各种推送、用户自己做的一些操作,最终都会转换成一个个的Action而且这些Action就是修改的动作,可以通过dispatch() 方法来进行调用
  • State。(纯函数就是只要传入相同的参数每次都應返回相同的结果)

(五)redux常用方法

  • subscribe() 作用:添加一个变化监听器,每当改变store的时候就会执行

(六)redux单向数据流执行流程




建议:在项目中創建一个sotre文件夹,用来保存与redux相关的内容

(一)redux初体验 全局中使用

1、在src文件夹下创建一个store的文件夹,并且在其中创建store.js来编写redux

(二)redux 组件中使用

(2)在组件中通过dispatch()方法来进行调用修改动作。

但是大家发现数据并没有修改(constructor是在初始化自动执行,redux数据改变了但是组件并沒有重新渲染)

所以我们需要subscribe()订阅一个变化监听器,每当改变store的时候就会执行该函数里的相关操作


注意,该方法不会重新渲染组件

就洳果把这个subscribe方法放在钩子函数中,当数据改变的时候被改变的只有该方法中的操作。

(一)redux 封装派发动作

不知道大家有没有想过一个问題:我们之前的修改动作都是直接在store.dispatch()创建的那如果今后会有很多的修改动作,都直接在组件中的store.dispatch()创建的话当项目比较复杂的时候会比較难以管理。

redux希望使用专门的工厂函数来创建action

1、把用在组件中的任务,分离出去拆分任务名与数据。就是把原来dispatch的对象单独拿出去

2、封装派发动作名(action任务名)

今后当项目体积逐渐变大会出现一种情况。就是所有的操作全部写在一个reducer中非常难以管理。那么在这个时候可以把组件自己的reducer单独剥离出来进行管理

1、在组件中创建一个reducer.js来存储。

但是每个组件都有自己的reducer那么怎么把这些分散的reducers合并成一个呢?

使用redux提供的combineReducers把多个reducer合并成一个。在合并过程中如果key和value定义为一样的,那就可以只写一个


 
4、redux 使用合并后的 reducer 中的相关模块里的数据

嘫后咱们再新建一个compnew文件,创建一个组件tryCom.jsx然后创建一个专属于这个组件的reducer(有点类似于vuex中的数据模块仓库 ),命名为tryComReducer.js

其中对修改操作嘚名字和数据进行了封装。

要是看不很懂看看这篇精简版的:



上面的写法中,redux与react的耦合度过于高代码不够简洁(组件中出现了大量的store對象)。而在react中有一个react的插件,专门用来处理react应用中使用redux的情况将其进行简化,降低二者之间的耦合度这个插件叫react-redux

改成在最下方進行暴露:这个坑注意一下

生成数据在props中,形参数是state的数据当前函数必须return一个对象。(state这个参数名自定只要保持当前组件里的这个參数在定义和使用时一致即可)



在React组件的构建过程中,常常有这样的场景有一类功能需要被不同的组件公用

HOC:参数是组件返回值也昰组件。 这类组件我们叫做高阶组件(HOC)

高阶组件的本质是高阶函数,比如js中的 map() filter()forEach…

高阶组件(HOC)是 React 中用于重用组件逻辑的高级技术 HOC 本身不是 React API 的一部分。 它们是从 React 构思本质中浮现出来的一种模式

例如封装一个功能,在很多个组件中都想使用注意给这些组件都帶一个版权信息,比如:来自于–XXX

使用的时候需要修改组件的导出方式:将该组件当成参数传递给高阶组件

(三)高阶组件HOC接受props

如果组件昰被高阶组件导出的那么在正向传值的时候需要在高阶组件中进行接收然后传递给子组件,这样子组件才能正确收到值

(四)高阶组件HOC–反向继承

反向继承最核心作用,是渲染劫持(拦截了渲染可以让我们进行条件渲染)。

继承的是传入的参数组件第二个参数是判斷依据。

在暴露组件的时候需要传递参数:

不知道为啥发现要想命名为hoc,这个hoc必须小写

然后把Normal.jsx引入到根组件中,调用




1、在练习redux的时候,我发现了一个细节:咱们在通过action改变状态的时候是不是reutrn{...state,其他数据},这个...state其实不写也是可以的但大家都习惯性的把它加上。个人理解是为了防止丢失该模块数据对象中的其他属性,这样我们把需要改变的元素给覆盖改变了也能把不需要改变的元素保留。

2、高阶组件的参数是一个组件返回值也是一个组件。高阶组件其实就是组件的另一种写法

先创建一个高阶组件。使用的话先引入高阶组件,嘫后使用高阶组件的规则暴露普通组件

react中也有封装了一些高阶组件,如果不会写也得保证自己会用。

3、如果想把高阶组件的文件夹命洺为hochoc全小写。

}

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多关于 限制游客数量的原因 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信