flutter讲述,Flutter语言

Flutter面试:渲染原理

页面中的各界面元素(Widget)以树的形式组织,即控件树。Flutter通过控件树中的每个控件创建不同类型的渲染对象,组成渲染对象树。而渲染对象树在Flutter的展示过程分为三个阶段:布局、绘制、合成和渲染。

创新互联服务项目包括息烽网站建设、息烽网站制作、息烽网页制作以及息烽网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,息烽网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到息烽省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

(一)布局

Flutter采用深度优先机制遍历渲染对象树,决定渲染对象树中各渲染对象在屏幕上的位置和尺寸。在布局过程中,渲染对象树中的每个渲染对象都会接收父对象的布局约束参数,决定自己的大小,然后父对象按照控件逻辑决定各个子对象的位置,完成布局过程。

为了防止因子节点发生变化而导致整个控件树重新布局,Flutter加入了一个机制——布局边界(Relayout Boundary),可以在某些节点自动或手动地设置布局边界,当边界内的任何对象发生重新布局时,不会影响边界外的对象,反之亦然。

二)绘制

布局完成后,渲染对象树中的每个节点都有了明确的尺寸和位置。Flutter会把所有的渲染对象绘制到不同的图层上。与布局过程一样,绘制过程也是深度优先遍历,而且总是先绘制自身,再绘制子节点。

以下图为例:节点1在绘制完自身后,会再绘制节点2,然后绘制它的子节点3、4和5,最后绘制节点6。

可以看到,由于一些其他原因(比如,视图手动合并)导致2的子节点5与它的兄弟节点6处于了同一层,这样会导致当节点2需要重绘的时候,与其无关的节点6也会被重绘,带来性能损耗。

为了解决这一问题,Flutter提出了与布局边界对应的机制——重绘边界(Repaint Boundary)。在重绘边界内,Flutter会强制切换新的图层,这样就可以避免边界内外的互相影响,避免无关内容置于同一图层引起不必要的重绘。

重绘边界的一个典型场景是Scrollview。ScrollView滚动的时候需要刷新视图内容,从而触发内容重绘。而当滚动内容重绘时,一般情况下其他内容是不需要重绘的,这时候重绘边界就派上用场了。

(三)合成和渲染

终端设备的页面越来越复杂,因此Flutter的渲染树层级通常很多,直接交付给渲染引擎进行多图层渲染,可能会出现大量渲染内容的重复绘制,所以还需要先进行一次图层合成,即将所有的图层根据大小、层级、透明度等规则计算出最终的显示效果,将相同的图层归类合并,简化渲染树,提高渲染效率。

合并完成后,Flutter会将几何图层数据交由Skia引擎加工成二维图像数据,最终交由GPU进行渲染,完成界面的展示。

四、总结

咱们从各种业界主流跨端方案与Flutter的对比开始,到Flutter的简要介绍以及Flutter的运行机制,并以界面渲染过程为例,从布局、绘制、合成和渲染三个阶段讲述了Flutter的实现原理。相信大家对Flutter已经有一个整体认知,赶快一起上手操作起来吧!

《歌剧院的幽灵》英文简介

The Phantom Of The Opera is one Of Andrew Lloyd webber's masterpieces.

(《The Phantom Of the Opera》是音乐剧大师安德鲁·劳埃德·韦伯的代表作之一。)

With wonderful music, romantic plot and perfect dance, it has become an eternal masterpiece in music drama.

(以精彩的音乐、浪漫的剧情、完美的舞蹈,成为音乐剧中永恒的佳作。)

It is based on the gothic romance novel of the same name by French writer Gaston Louis Alfred leroux.

(它改编自法国作家加斯东·路易·阿尔弗雷德·勒鲁的同名哥特式爱情小说。)

扩展资料

《歌剧院的幽灵》剧情介绍:在巴黎的一家歌剧院里,怪事频繁地发生,原来的首席女主角险些被砸死,剧院出现一个令人毛骨悚然的虚幻男声。

这个声音来自住在剧院地下迷宫的“幽灵”,他爱上了女演员克丽斯汀,暗中教她唱歌,帮她获得女主角的位置,而克丽斯汀却爱着剧院经纪人拉乌尔,由此引起了嫉妒、追逐、谋杀等一系列情节。

而最终“幽灵”发现自己对克丽斯汀的爱已经超过了个人的占有欲,于是解脱了克丽斯汀,留下披风和面具,独自消失在昏暗的地下迷宫里。

讲一个小动物从海里被冲到岸上后被收养的动漫

你表妹好幸福,有个好姐姐(~。~)要碟子看这里:芭比电影介绍芭比的处女作《芭比与胡桃夹子的梦幻之旅》(BarbieintheNutcracker)胡桃夹子的梦幻之旅风靡全球40多年的芭比娃娃给人们最深刻的印象莫过于光彩的倩影,曼妙的身材和恬静的脸庞,这个可爱的洋娃娃身穿不同国籍、不同款式的时尚服装,静静地呆在那里等待着自己的主人。在2001年芭比娃娃却一改往日静止不动的样子,突然动了起来。一直为千万女孩渴望拥有的芭比娃娃正式进军影坛,推出她的处女作动画影片《芭比与胡桃夹子的梦幻之旅》(BarbieintheNutcracker),这是一部长75分钟的动画片,是专门为少女和小女孩们设计的。本片通过最先进的CGI电脑动画制作技术,全新演绎霍夫曼的名著《胡桃夹子》,片中芭比饰演女主角嘉娜,她收到胡桃夹子送给她的一份精致的生日礼物,当晚进入梦乡时,邪恶的恶鼠王企图闯入并下了可怕的咒语,胡桃夹子为了保护嘉娜,共同踏上了奇幻的冒险之旅,途中有善良的小精灵解危,最后魔咒解除,胡桃夹子也变成了英俊的王子。芭比的处女作,集合娱乐产业中的顶尖高手,制片结合环球影业最先进的CGI电脑动画技术制作,片中舞蹈全由芭蕾舞大师彼得马丁编舞,舞蹈动作则由美国纽约市立芭蕾舞团五位舞者负责,再以动作捕捉方式将舞者曼妙的舞姿输入电脑中绘制而成,而舞曲配乐则是由英国伦敦交响乐团演奏柴可夫斯基的悠扬乐章。--------------------------------------------------------------------------------------------《芭比之长发公主》(BarbieasRapunzel)长发公主从前,有一个很可爱的17岁女孩丽宝莎,她有着一头全世界最长、最漂亮的头发,喜欢画画。不过,丽宝莎从小就被一个善妒、邪恶且法力高强的女巫葛朵藏在一座庄园中,被当成奴隶使唤,后来丽宝莎发现了一支魔法画笔并用其出入高塔,巧遇了王子史蒂芬,因此了一场与巫婆之间的斗争。靠着朋友们的帮助,丽宝莎发现了自己真实的身份,解除了两国的误会。一直为千万女孩渴望拥有的芭比娃娃重现银幕,演绎经典童话故事中的芭比之长发公主(BarbieasRapunzel)在影片中,她追求自由和爱情,却被恶魔锁在施了魔法的高塔上,但凭着勇敢、机智和想象力,几经波折终于化险为夷。---------------------------------------------------------------------------------------------《芭比之天鹅湖》(BarbieofSwanLake)该片取材自十九世纪的经典剧目《芭比之天鹅湖》,并通过全新演绎,一改往日的简单公主王子情节,讲述了一个平凡出身的女孩,凭借勇气、智慧以及顽强意志,和朋友们跨越重重难关,最终战胜恶势力的故事。告诉人们:每个人都比自己想象中勇敢,只要凭着天鹅湖无比的信心与坚毅的意志,所有人都有力量改变世界。故事中仍保留了原有的王子爱恋上美丽天鹅的动人童话情节,并升华为“真爱战胜一切”的高尚主题。整个动画片由电脑制作,配上精彩的真人芭蕾舞表演和柴可夫斯基的经典音乐,可谓是视觉和听觉的完美享受。除了芭比在片中饰演女一号奥德蒂以外,芭比的娃娃世界的朋友们也在剧中有精彩表现:片中其他玩具娃娃演员还包括芭比的男朋友肯饰演丹尼尔王子,芭比的好朋友德丽莎饰演仙子皇后,丽娜饰演独角兽,还有芭比的其他朋友们饰演在森林里生活的其他小动物。美泰公司品牌部发言人表示:“女孩子总喜爱亦幻亦真的题材,动画片《芭比之天鹅湖》及其系列玩具让女孩子们在真实的世界里演绎梦幻,投入芭比千变万化的精彩世界之中。相信芭比扮演的天鹅湖公主一定会成为女孩的挚爱。”-----------------------------------------------------------------------------------------------《芭比之真假公主》(BarbieasthePrincessandthePauper)《真假公主芭比》故事改编自幽默文学大师马克·吐温的经典作品《王子与乞丐》,芭比再次活现银幕面前,以动听的歌声,分身饰演一出梦幻式动真假公主画音乐剧!安丽丝公主与贫穷的乡村女孩爱莉嘉虽然身份悬殊,外表却长得一模一样。安丽丝公主遭邪恶的爵首所绑架,爱莉嘉刚巧路过,挺身相救。英俊的邻国国王杜明利误将爱莉嘉当作安丽丝,对爱莉嘉一见倾心。并由百老汇著名作曲家领衔创作剧中的精彩音乐,芭比用她优美动人的歌声,安丽丝唱着《希望之歌》,爱莉嘉唱着《爱的故事》,让你体验其中音乐之美,梦幻之美。她们就是真假公主芭比。近日,深受人们喜爱的芭比在她最新上映的第一部音乐电影剧《芭比之真假公主》里,一人分饰两位主角——城堡内金发的安丽丝公主Anneliese和棕发的贫穷村女爱莉嘉Erika,两个截然不同的身份,却有着相同善良纯真的心,追寻真爱和梦想,最后,两位真假公主成为了好朋友,揭穿了坏人的阴谋。这是芭比从影以来最具挑战性的角色,利用计算机影像的魔幻技术,全世界喜爱芭比的人们不仅可以亲眼目睹芭比栩栩如生地现身银幕,还可欣赏到她们悦耳的歌声,这是芭比系列的一次崭新尝试。--------------------------------------------------------------------------------------------------《芭比与魔幻飞马之旅》(BarbieandtheMagicofPegasus)全新芭比3D场景梦幻上市!美丽的公主安妮卡住在北欧的山上。国王王后对其保护甚严,呵护有加,活泼的安妮卡经常偷偷溜出去滑冰玩耍,一天,她又偷偷溜了出去,领回了一只可爱的小北极熊,并带着它在晚上溜出皇宫,参加热闹的滑冰舞会,美丽的安妮卡优美的舞姿吸引了大家,这时,邪恶而强大的巫师突然出现,胁迫其嫁给他,安妮卡不从,巫师将她的父母和子民变为了石头,关键时刻,一匹飞马救走了安妮卡,原来,飞马是当年被胁迫不成,恼羞成怒的巫师施咒的姐姐,在安妮卡的鼓励和坚持下,姐姐和她一同再次开始寻找传说中可以打败巫师的光之法杖。在寻找组成光之法杖三样物品的路途中,他们结识了爱丹,在他的帮助下,历经艰险,他们终于打败了巫师,解除了诅咒……全新的芭比故事,透过仙女梦幻的故事奇境,带您体验一场温馨、勇敢、友谊的梦幻冒险之旅。---------------------------------------------------------------------------------------------------《芭比之12芭蕾舞公主》(BarbieInthe12Dancingprincesses)芭比这次在《芭比之12芭蕾舞公主》中,将扮演珍妮花公主,带来许多令人赞叹的芭蕾舞蹈,并且踏上奇换冒险之旅。珍妮花公主有天和她那11位芭蕾舞公主姊妹,发现一个神秘的信道,通往一个可以让人梦想成真的魔幻世界,但是此时她们的父王面临到被篡夺王位的危险。珍妮花公主将和她的姐妹们齐心协力,拯救她们的父亲,并且发现可贵的亲情,克服难关。----------------------------------------------------------------------------------------------------《芭比之奇幻日记》(Barbiethediaries)在芭比的奇幻日记里,任何愿望都能实现!体验全新摩登的现代芭比与更让人难以捉摸的热情俏丽。继一段令人超乎想像的奇幻故事,伴随着友情魔力,超酷的音乐与流行的事,谱织出女孩们的浪漫恋曲。极度期待新学期到来,又可以与党彻夜狂欢,尽情的在乐团里玩电吉他,在最爱的电视台工作。差点忘了!还可以见到学校里帅到不行的白马王子,可惜他还不认识我;不过没关系,我一定会想法让发注意到我。在奇幻日记与魔力手练加持下,所有的愿望都会逐一实现……-------------------------------------------------------------------------------------------------《芭比之彩虹仙子》(BarbieFairyTopia)穿越彩虹就可以到达芭比梦幻仙境……没有翅膀的仙子爱丽娜,一直渴望拥有一对翅膀。魔法草地那边,是她的家乡。有一天,她家乡花园的花都枯萎了,更严惩的是她那些有翅膀的仙子朋友们也都飞不起来了。于是,她鼓起勇气出发,寻找可以解决这些难题的守护神仙子帮忙。然而,旅途上困难重重,磨难多多。爱丽娜突破难关,战胜了邪恶女巫露维纳,终于拥有了自己的翅膀。----------------------------------------------------------------------------------------------------《芭比彩虹仙子之人鱼公主》(BarbieFairyTopia--Mermaidia)在《芭比梦幻仙境之人鱼公主》中,爱丽娜(芭比)为了拯救她的朋友—人鱼王子拿路,必须放弃她美丽的翅膀,化身为美人鱼。邪恶的女巫露维娜绑架了人鱼王子拿路,想借用他的力量成为梦幻仙境的统治者。只有爱丽娜才能阻止这一切,但仅靠她一个人的力量还不够,她必须借助罗丽帮忙。罗丽是个不愿轻信别人的人鱼,她不愿意帮助爱丽娜,可爱丽娜用诚意劝服了罗丽,等待着爱丽娜的是更为艰苦的挑战。想要救出拿路,爱丽娜就必须放弃她最宝贵的翅膀。爱丽娜能做到吗?如果她失败了,梦幻仙境将永远掌控在露维娜的手中……------------------------------------------------------------------------------------------------------《芭比彩虹仙子之魔法彩虹》(BarbieFairyTopia--MagicoftheRainbow)芭比扮演的爱丽娜一起来一场全新的仙境历险吧!爱丽娜和她的小精灵比宝一起来到了坐落在华丽的水晶宫殿中的仙女学校。在那里,她结识了其他的仙子学员,还要学习每年一次的春季飞行,和如何魔术般绘出这一季的第一道彩虹。可是当邪恶的露维娜试图中止飞行,让仙境从此陷入十年的寒冬的时候,爱丽娜和她的新朋友们必须先学会“团结就是力量”。但是,她们是否强大到足以打败露维娜,让彩虹再次挂上天际呢?------------------------------------------------------------------------------------------------------《芭比之蝴蝶仙子》(BarbieMariposa)一天晚上,比宝因为思念素素做了一个素素的娃娃,结果弄坏了。爱丽娜知道后,为了鼓励它,给它讲了蝴蝶仙子的故事:曼瑞莎是一个蝴蝶仙子,她有一个好朋友薇拉和两个双胞胎姐姐。一天,她收到王子的一张地图,要她去圣地寻找拯救女王的方法。于是她和两个姐姐出发了。与此同时,薇拉发现女王被坏仙子汉娜下了毒,于是救出被软禁的王子,并揭发了汉娜。随后曼瑞莎得到了救女王的神奇花朵,回到了Flutterfield(展翅镇),并用花朵救了女王。使汉娜得到应有的下场。最后,女王把荣誉花环送给了曼瑞莎等人。感谢她们拯救了魔法王国。-----------------------------------------------------------------------------------------------------------《芭比彩虹仙子之穿越时空》(BarbieFairytopia:MagicalTwistofTime)电影中芭比扮演爱丽娜,当她和比宝在魔法草原上玩的时候,露维娜吃下了人鱼国的魔法草莓,这使她得到了过去,现在和未来的力量,然后她就开始扭转时间到过去,而爱丽娜又变回了没有翅膀的仙子,还不知道发生了什么事。之后露维娜又开始释放飞行病毒,杀死所有的植物,并夺走了仙子们飞行的能力。为了明白这一切,爱丽娜和比宝踏上了漫长的旅程。他们见到了不同的仙子朋友,还在展翅镇见到了曼瑞莎!靠着曼瑞莎,莎宝丝,露美娜,姬丽,瑞拉,瑞娜,丹丽安,罗丽,以及很多别的朋友的帮助,爱丽娜有了勇气去打败邪恶的露维娜,并找到金色魔杖。但是这个没有翅膀的仙子能在次拯救整个梦幻仙境吗?--------------------------------------------------------------------------------------------------------《芭比之森林公主》(BarbieastheIslandprincess)森林公主这是个美丽的小岛,一天,一个女孩被冲到岸上,暴风让她失忆了,她只知道自己叫“露露(Ro)”,以为岛上的动物就是她原本的家人。一个风和日丽的早晨,喜欢出海探险安东尼奥王子来到了岛上,被这位叫露露的女孩深深迷住了,想带露露回到自己王国,露露的两位动物朋友同意了,只有小象迪奇不同意。露露对王子的那份感觉使露露最终决定跟安东尼奥去他的王国。回到王国,两人得知国王已经给王子安排了一位公主,这位公主名叫露丝安娜。她很善良、有教养,而且向往真爱,当她知道王子爱着露露时,她也不喜欢这门婚事。可是她的妈妈想抢夺这个王国,还设计赶走露露。可是,露露为了自己心爱的王子和他的国家又回去了,救了王子,国王也同意王子与露露结婚,露露还意外地通过那首晚安歌找到了自己的母亲——一位温柔的公爵夫人,还想起了自己的原名——露茜娜(Rosella)。在婚礼上,那位善良的公主也找到了适合自己的人。-----------------------------------------------------------------------------------------------------------《芭比之钻石城堡》(BarbieTheDiamondCastle)钻石城堡介绍在很远的地方,一片有着音乐与魔法的土地,住着两个漂亮的女孩。丽安娜和爱丽莎(芭比和特丽莎)。她们是会分享一切的最好的朋友,特别是她们对歌唱的喜爱。有一天,当她们穿过森林时,她们发现了一面魔法镜子。当她们清洗镜子并唱歌时,神奇的事情发生了!一个叫美洛蒂的女孩出现在镜子的表面。美洛蒂告诉了她们钻石城堡的秘密。钻石城堡,美洛蒂解释说,是所有音乐的家,三个音乐缪丝永久居住的地方。直到一个邪恶的缪丝丽迪亚,企图将钻石城堡据为己有。另外两个缪丝将钻石城堡的钥匙托付给了美洛蒂来保管。之后,为了保护钥匙的安全,美洛蒂把自己藏进镜子里。但现在她出不去了。她需要丽安娜和爱丽莎的帮助把她从镜子里放出来,然后去解救钻石城堡。于是两个女孩开始了旅程——离开家很远的旅程。在路上,她们结识了新的朋友和敌人。但友谊的力量能不能胜利呢?DVD已于2008年9月9日推出!_______________________________________________________________________________________________________________《芭比之圣诞欢歌》(BarbieInAChristmasCarol)圣诞颂歌芭比之圣诞颂歌是一个温暖心灵的关于古典的狄更斯的故事。充满了珍爱的圣诞颂歌、漂亮的衣服和很多的笑话!芭比在这个故事中扮演伊甸.斯塔林,一个富有魅力的、在维多利亚时代的伦敦的一个歌剧院的女主唱。她和她自大的猫查兹尔威特一样,伊甸自私地计划着让剧院所有的演员在圣诞节那天留下来排练!甚至连伊甸的服装设计师和她童年时代的朋友凯瑟琳也不能说服她这以自我为中心的脾气。这件事被3个不寻常的圣诞神灵知道了,她们把伊甸带到一个奇妙的旅行中去使她的心灵向着这个季节的精神和给予的快乐敞开。DVD已于2008年11月4日推出!--------------------------------------------------------------------------------------------------------------《芭比奉献花仙子》(BarbieThumbelina)在一片郁金香花园中,住着一位小精灵——桑贝琳娜(Thumbelina)。她和其它的精灵快乐地生活在自然中。花园里就要有新的小精灵出生了,她和她的朋友对此非常兴奋。突然,一架挖土机开始破坏她们美丽的花园!桑贝琳娜被迫和朋友逃出花园,来到了一个奇怪的地方——一座漂亮的现代城市公寓!在那里,她们认识了一个叫麦嘉娜的人类女孩,并与她交了朋友,但是一开始麦嘉娜根本不当桑贝琳娜是朋友,还想将她展示给外人。经历了友谊的风雨他们终于找到了真正的朋友并拯救了花园。DVD已在2009年4月19日推出!-------------------------------------------------------------------------------------------------------------《芭比与三个火枪手》(Barbieandthethreemusketeers)芭比与三个火枪手暂无介绍,本电影将于2009年秋推出。

蝴蝶效应这电影讲的是什么道理?

无可选择的选择 很偶然地看到一个关于电影《The Butterfly Effect》(《蝴蝶效应》)的帖子,介绍影片有几个版本的不同结局,很有些意味;重新勾起了我对这部电影的感触。 It has been said that something as small as the flutter of a butterfly’s wing can ultimately cause a typhoon halfway around the world. -Chaos Theory 这是混沌理论中最通俗、也最为人所知的表达了,“蝴蝶效应”的提法最初出自1972年美国麻省理工学院教授、混沌学开创人之一E.N.洛伦兹在美国科学发展学会第139次会议上的论文:“巴西丛林一只蝴蝶偶然扇动翅膀,可能会在美国得克萨斯州掀起一场龙卷风”。一个混沌系统是无法预言、操纵和控制的,而且对于系统的初始条件具有极端敏感的依赖性,在系统初始任何一点点细微的改变,都会在系统后期发生翻天覆地的变化…… 埃文在发现自己可以通过阅读过去的日记回到那个时间点、并找回失去的记忆时,为了得到最理想的现在,他一次次地回到过去,可是每一次的改变都是“猜到了开始,没有猜到结局“:记起了对凯莉的爱,凯莉却间接地因此而死亡;和凯莉成为了恋人,却杀死了她的弟弟;解救了小狗,却使得伦尼杀死了汤米而被关进精神病院,凯莉也内疚地堕落成吸毒的妓女;救了塞姆普太太和她的孩子,自己却成了残疾,伦尼和凯勒则成了幸福的一对儿……每一次的追回时间都以为可以通过已知的结局改变最终的“现在”,没想到改变的还仅仅只是开始……每一次不甘的闪回,像极了《大话西游》中用月光宝盒拦下自刎的剑;但后者幸运的是只要改变时间的快慢,而埃文却在无奈地同随之而变的“现实”抗争…… 导演一共安排了四个结尾,可真正用到的结尾只有两个。一个是导演加长版的结尾,埃文看到的家庭电影是埃文的母亲即将产下埃文,进入历史的埃文决定自己结束这一切,他用双手掐住了脐带,结束了自己刚要开始的生命,现实的生活中没有埃文,凯莉跟汤米被离婚后的一母亲监护,远离了那个BT父亲,自然也就没有了雷管事件。剧场版的结局是埃文看到的家庭电影是第一次认识凯莉的聚会,回到从前的埃文骂了凯莉,他与凯莉没有成为好朋友,凯莉跟汤米的监护权也由母亲得到。工作后的埃文在街上偶遇凯莉,但却没有相认。另两个结局也是按剧场版的结局设定的,一个是埃文遇到凯利后,返身去追凯利,另一个是两个相认。 我不幸地看到的正是那个更具好莱坞式的剧场版结局——当初就隐约地觉得这个结局略显仓卒和苍白,现在想来是为了迎合市场温情的需求吧。而我,是愿意选择前一个结尾的。 我们常常会后悔、后悔当初的选择,于是会说如果我当初如何如何,今天就能如何如何了——真的会是这样的吗?知道了结局,就能改变起因吗?埃文拥有的能力可以说是很多人梦寐以求的:一副用之不尽的后悔药。用它,可以收回一句失言、弥补一个过失、追回一个爱人、挽回一场战争……——但,真的可以“反悔”吗? 混沌理论在时空传送中的应用就是在时间的“过去”作出的一小点改变,都会导致时间的“未来”无可预知的剧变;所以,意图通过改变过去而影响现在的做法唯一的结果就是——不可预料!因此,对过去选择的后悔和假设都是无义的,它未必能够导向优于现在的可能;所以,我们只能(也必须)相信:每一次的选择都是最好的选择了! ——然而这,还不是最大的悲剧! 想到了古希腊悲剧、想到了俄狄浦斯王。希腊神话中的“神”(或者是“命运”)也隐隐约约地在埃文的身边露出脸来,前者的神谕(或是先知的话)和后者的“现在”都是一个不可扭转的必然——些微的差别只在于当初的“神”更加地专断,现今的命运却允许有所不同;但它们的结论是趋近的,共同趋向于不完美的、悲剧的肯定!!任何的抗争都是徒劳的,埃文一次次在已知的结局上去修改发生的原因,但“每一次挣扎都只是使命运这张网收得更紧一些罢了”——而这,恰恰是古希腊悲剧中最震撼的地方!如果俄狄浦斯王、这位生下来就注定要弑父娶母的悲剧之人可以选择,我想,他也是会宁可切断脐带、不要有这个生命的开始吧! 这是一部可以有很多理解和归属的电影。可以是玄疑片可以是心理惊悚片,可以是讲述为爱牺牲的言情片也可以是预想时空旅行的科幻片——但我更愿意把它理解为对命运抗争的迷茫和无奈、并最终只能以自我的结束作为妥协……这也许恰恰揭示了人生的一些真谛吧! 这是豆瓣上的 还有时光网上的也不错

Flutter 网络请求 Dio 拦截器详解

昔日的小王凭借这他的小心谨慎和借助漂亮能干的女友 Dio 的辅助,终于干下了一番事业,成为中华大地响当当的人物,小王也变成老王。如今,老王已经年近花甲,看似迈上了人生巅峰,却也遇到了人生的烦恼——那就是他的儿子,新的小王。

小王和他爹当年的小心谨慎不同,小王自海外留学回来,也不愿意接手老王的事业。反而迷恋起了互联网,玩游戏、微博喷人、撩网红等等。前两项倒还好,但是后一项,让老王心烦得很。这网红哪能随便撩的,万一弄出许多小小王来,多大家业都不够分的啊!

关键时刻,还是老王的媳妇,曾经被 金屋藏娇 的Dio 想出了新的招术,再次让老王佩服不已。老王媳妇Dio给小王搞了个拦截器,只要小王要在互联网做什么,都会被她给先拦截下来,然后她再根据小王要做的事情决定是不是要替他发出去;或者是收到什么消息的时候,也会先看一遍,没问题再给小王看。而且,最为关键的是,小王对这一切压根都不知道!

老王媳妇一开始是这么干的,小王在互联网有什么新的动向直接向老王汇报。

这下小王在互联网就完全被监视了——而且他压根不知道!只是,每次他说要钱的时候,老王不再随便给了!

但这个时候,小王还能在网上撩,毕竟上网在这个时代是不怎么要钱的。

老王媳妇 Dio 一看这种方式不行,就又心生一计,每次小王聊网红的时候,直接狠心拒绝!

小王这下子懵圈了,难道是他的那些“土味情话”已经失效了?每次发出去消息都遭受到了无情的打击,让他心灰意冷。渐渐地他就淡出了互联网,至于现在在干什么,谁也不知道。感觉又像是当初老王金屋藏娇一样,现在的小王也逐渐被隐藏了起来。从此,互联网只剩下小王和各个网红的传说。

借着老王和小王的故事,我们讲述了 Dio 的封装和 Dio 的拦截器。其中拦截器可以应用于很多实际场景:

注意,Dio 的实例可以同时添加多个拦截器,以便处理不同的情况。

Flutter与原生通信概述

flutter与原生通信主要有三种方式:MethodChannel、EventChannel、BasicMessageChannel,这三种方式均各有适用的场景:MethodChannel用于native与flutter的方法调用,EventChannel用于native单向的向flutter发送广播消息,BasicMessageChannel用于native与flutter之间的消息互发。

MethodChannel用于双方之间的方法互调,使用步骤是:

1.创建一个MethodChannel对象,传入MethodChannel名称。

2.使用setMethodHandle对对方调用自己的方法进行监听,通过回调中的MethodCall对象方法名判断、获取方法参数,并且返回调用结果。

3.使用invokeMethod来调用对方的方法,可传入方法名,方法参数,以及监听对方的回调结果。

以下是示例:

需要注意的是,MethodChannel的名称需要双方保持一致,否则就不是同一个MethodChannel了。另外这里的方法调用并不是像Java里面反射那样去先找到class示例对象再解析到相应的方法,而是将双方互发的消息包装成了MethodCall对象,拿到这个对象后通过MethodCall里面的方法名去判断要做什么操作,并不是直接就调用了自身(native或flutter)相对应的方法。具体要做什么操作、调用什么方法还是得自己去调用和实现。

EventChannel适用于native向flutter发送广播消息,只是单向的消息发送,native发,flutter收,返过来flutter并不能向native发送消息。例如native可将定位数据不断的报给flutter,或者录像数据等等,所有基于原生能力产生的数据都可以通过EventChannel进行发送。

步骤:

1.创建一个EventChannel对象,传入EventChannel名称。

2.flutter端调用receiveBroadcastStream进行广播消息注册,传入arguments参数即为广播名称,此参数是告诉native端你要接受的广播类型,判别是什么广播发送的数据。

2.native调用setStreamHandler方法进行广播消息监听,onListen回调里会有一个arguments参数,这里及为flutter注册的广播类型,若flutter端没有注册,则native端不会收到这个回调,也就无法进行消息发送。收到flutter端的广播注册后,根据arguments可判断广播类型,然后根据EventChannel.EventSink来进行消息发送,EventSink.success()即可将消息发送给flutter端。

3.flutter进行广播注册会返回一个streamSubscription类型的对象,该对象可以进行消息的停止,native可在onCancel回调里面收到。

示例如下:

BasicMessageChannel就是比较常用的消息互发,使用步骤如下:

1.创建BasicMessageChannel对象,传入BasicMessageChannel名称。还需传入编解码方式(可以自己实现),系统提供了一些列的编解码方式,后续会介绍到。

2.使用setMessageHandler方法进行消息监听,也可进行回复。

3.使用send方法进行消息发送。

无论哪种方式的消息传递,最终都是将自定义数据转化为二进制数据进行传递,flutter提供的编解码方式分为MethodCodec和MessageCodec两种,EventChannel和MethodChannel使用的就是MethodCodec,BasicMessageChannel使用的是MessageCodec。MethodCodec其实就是在MessageCodec的基础上将数据包装了一下,使其转化为MethodCall对象方便使用。

MethodCodec源码:

MethodCodec提供了两种方式:JSONMethodCodec和StandardMethodCodec,前一种就是JSON和MethodCall对象之间的互转,后一种则是根据传入的数据基本类型(String,Integer等)来进行互转。

MessageCodec则提供了四种方式,如下图,具体就不详细讲述了,看看名字就知道是怎么回事,可以直接去看源码。最常用和默认的就是StandardMessageCodec方式。

从上面的使用方式可以看出,每一种Channel在创建的时候都需要传递一个BinaryMessenger,这个接口可以在FlutterEngine里面拿到,因此需要在FlutterActivity里面实现configFlutterEngine方法里面重写这个方法。FlutterActivity在attach FlutterEngine之后就会调用这个configFlutterEngine方法,通过flutterEngine.getPlugins().add(FlutterPlugin)方法可以FlutterPlugin的回调方法里进行数据的初始化和销毁工作。如下图

这个回调方法里的FlutterPluginBinding提供了一些我们可能会用到的对象,如下:


分享名称:flutter讲述,Flutter语言
标题链接:http://scyanting.com/article/dsscpoh.html