Archive for the '网络技术-Flash' 类别

24

一般说来使用htmltext即可在文本中嵌入图片:
t_txt.htmlText = "<img src='images/lovely.jpg'>";

刚发现在AIR中不行,Adobe这么解释:
For AIR content in the application security sandbox, AIR ignores img tags in HTML content in ActionScript TextField objects. This is to prevent possible phishing attacks,

又是sandbox。。。

14

长期以来,评判一个网站的好坏是非常主观的一件事情。问题不在于没有判断的标准,而是标准太多了!为了解决这个问题,我公司(易维互动)自主开发了这个网站测试评分系统。
测试评分系统综合了多种判断网站是否有效的常见标准,它通过问答的方式来测试网站的策划、外观、内容、用户友好、性能和搜索引擎优化,测试完成后以上各项会分别评分,让你对网站的优点和不足一目了然!

网站测试评分系统
中文版:http://www.ewings.cc/siteTest/siteTest_zh.html
English Version:http://www.ewings.cc/siteTest/siteTest_en.html

04

发现一个非常好用的天气预报插件,信息量丰富,国内天气能精确到区。而且是“实时”的,每天会更新多次。请看下面的Flash吧:

23

Gaia是一个不错网站模板,专为简化Flash全站开发而生的。它简化了不少机械重复的劳动,让你有更多的时间专注于网站最有创意的部分的开发。
安装:http://www.gaiaflashframework.com/

Gaia可以让你在3分钟之内建立好网站大结构,并置入流量监测(Google),Deeplink,回收机制,页面切换等等。而这些工作都不需要你写一行代码!全部是可视化的操作。以上操作有详细视频介绍:
第一步:http://tv.adobe.com/watch/fitc/gaia-framework-for-adobe-flash/

激动吧,三两下就把网站结构建立起来了。可是接下来该干嘛呢?Gaia有非常详细的文档,但没有体验式的介绍。我茫然了好几个小时,觉得应该从导航入手:
第二步-内部事件机制及其Hijack: http://www.gaiaflashframework.com/wiki/index.php?title=Global_Navigation_Made_Easy_with_Event_Listening
此片文章的最下方是一个导航案例,可以说只要研究一下它,试试增加栏目到导航,基本构架就学得差不多了,剩下就是往里面填东西了。怎么填?平时怎么开发就怎么写,一个栏目一个栏目地写。有时候修改自动生成的Main.as也是不可避免的。

14

Flex与Flash中获得html参数的方法略有不同,下方是Flex3实例代码,注意红色的部分:

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”vertical” verticalAlign=”middle” backgroundColor=”white” creationComplete=”init()”>

Continue reading Flex直接获取html中参数的方法

01

AIR通过HTTPService像服务器发送reques时,如果带有中文,那么需要设置:

flash.system.System.useCodePage=true

但同时需要注意,自此以后外部导入的xml的编码格式需要设置为gb2312:


06

PV3D是把虚拟的x,y,z坐标映射到真实屏幕的x,y坐标系的,可我怎么读取真实的x,y呢?这在做一些二维+三维的项目的时候非常关键。
do3d.calculateScreenCoords(current_camera); real2DX=do3d.screen.x+current_viewport.width/2; real2DY=do3d.screen.y+current_viewport.height/2;
此时的x和y都是平均值,也就是是说中心点的坐标。这就导致无法得到边缘的坐标,比如左上角点。这种情况下可以通过do3d上的节点的坐标来计算边界坐标,以四个节点的Plane为例:
左下角
do3d.geometry.vertices[0].vertex3DInstance.x+current_viewport.width/2;
do3d.geometry.vertices[0].vertex3DInstance.y+current_viewport.height/2;
左上角
do3d.geometry.vertices[1].vertex3DInstance.x+current_viewport.width/2;
do3d.geometry.vertices[1].vertex3DInstance.y+current_viewport.height/2;
右上角
do3d.geometry.vertices[2].vertex3DInstance.x+current_viewport.width/2;
do3d.geometry.vertices[2].vertex3DInstance.y+current_viewport.height/2;
右下角
do3d.geometry.vertices[3].vertex3DInstance.x+current_viewport.width/2;
do3d.geometry.vertices[3].vertex3DInstance.y+current_viewport.height/2;

06

大家知道as3在嵌入字符的时候是用unicode range来指定嵌入字符的范围的。所以想要嵌入指定字符,就需要把它们转换为unicode。代码很简单:

var str:String=”你好”;
trace(str.charCodeAt().toString(16));

注意:charCodeAt是可以指定字符串的index的,上例中可以使用str.charCodeAt(0)或者str.charCodeAt(0)

05

在主swf A中加载了一个外部swf B, 为了自适应浏览器尺寸,在A中加入了这两句话 :
stage.align = “TL”;
stage.scaleMode = “noScale”;
但发现这只会影响A本身,不会影响B。据说下面这段代码能够解决这个问题(尚未验证)。

public function B()
{
this.addEventListener(Event.ADDED_TO_STAGE, addedToStage );
}

protected function addedToStage( e : Event ): void
{
B.width = stage.stageWidth/2;
B.height= stage.stageHeight/2

}

05

TextField除了可以显示纯文本之外,还可以图文混排,内嵌别的TextField,Sprite等。当然这些都需要htmlText属性的支持。

TextField支持一些简单的html标签:

font, b, i, u, a, p, br, li, span, img

一个Textfield内嵌TextField的小例子:

package {
import flash.display.MovieClip;
import flash.text.TextField;

[SWF(width="300", height="200", backgroundColor="#FFFFFF")]
public class main extends MovieClip {
public function main() {
var outerTxt:TextField = new TextField();
outerTxt.border = true;
outerTxt.x = 100;
outerTxt.y = 50;
this.addChild(outerTxt);

outerTxt.htmlText = “Outer TextField<img id=’txt’ src=’flash.text.TextField’ width=’80′ height=’50′ />”;
var innerTxt:TextField = outerTxt.getImageReference(‘txt’) as TextField;
innerTxt.border = true;
innerTxt.text = “Inner TextField”;
}
}
}

注意,一定要TextField.autoSize=true; 否则:
1. 如果img标签前面如果别的字符,img标签就会失效。这个问题在Flash player 9和Flash Player 10中都存在~~,很多文章也提到了这个问题,但没有指出是autoSize的原因。
2. 图文混排的时候文字总是在图片前面