2009年5月8日 星期五

jQuery1.3.2在IE8下出现“Invalid Argument”错误的问题

今天给博客页头加了一个动画效果(鼠标点击会更换页头背景),用的是jQuery1.3.2,FireFox下一切正常,但是IE8出现"line: 4166 Invalid Argument"的错误:


原因不详,临时解决办法如下:
fx.elem.style[ fx.prop ] = fx.now + fx.unit;

改为:
if(fx.prop && fx.unit && fx.elem && fx.now){
fx.elem.style[ fx.prop ] = fx.now + fx.unit;
}

标签: , ,

2009年3月8日 星期日

UTF8的BOM让FirFox一片空白

今天遇到在FirFox/IE下,网页都是一片空白的问题,以为和IE的META Content-Type问题类似。可是毫无效果。在二进制下看到网页尾部多了EF BB BF三个字节,原来是UTF8的BOM(Byte Order Mark)在搞鬼。 将这三个字节过滤掉,问题解决。呼~三点了,觉去。。。

标签:

2009年2月6日 星期五

集成phpBB3论坛

phpBB3从功能和界面上都是很不错的免费论坛程序。要把它和自己的系统结合起来其实也没有想象的那么复杂。这里有个简单的方案:
主要目标
  • 做到原有系统用户可以自动登录论坛
    如果用户已经登录原有系统,检查该用户是否在论坛有同名帐号,否则自动生成和用户同名的帐号,然后自动论坛。

  • 从论坛注册和登录都会自动到转到原有系统的注册和登录页面。
    屏蔽原论坛的注册登录功能,以及修改密码功能。
修改时遇到如下错误:
Strict Standards: Non-static method utf_normalizer::nfkc() should not be called statically
还不清楚原因何在,临时解决办法:先屏蔽utf8_clean_string函数。修改如下:
Edit: includes/auth.php
885 function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0, $noclean = 0)
908 user_add($login['user_row'], (isset($login['cp_data'])) ? $login['cp_data'] : false);
if($noclean == 1){
$clean_name=$username;
}else{
$clean_name=utf8_clean_string($username);
}
$sql = 'SELECT user_id, username, user_password, user_passchg, user_email, user_type
FROM ' . USERS_TABLE . "
WHERE username_clean = '" . $db->sql_escape($clean_name) . "'";

Edit: includes/auth/auth_db.php
27 function login_db(&$username, &$password, $noclean=0)
if($noclean == 1){
$clean_name=$username;
}else{
$clean_name=utf8_clean_string($username);
}

标签: ,

2009年2月3日 星期二

Cube使用ShadedMaterial材质的黑三角型问题


在PV3d里面立方体原型Cube中使用ShadedMaterial材质的时候,如果立方体所有面都使用同一shader,渲染结果的时候,每个面会出现单个黑色三角形的问题。
myShader = new PhongShader(light);
myShadedMaterial = new ShadedMaterial(myBitmapMaterial,myShader);
mlist = new MaterialsList();
mlist.addMaterial(myShadedMaterial, "all");

根据nabble上的解释:解决办法只能给每个面指定单独的Shader。经测试问题解决。

另外,要解决两平面相对垂直时,视角中出现的三角形突起,如下图:

可以修改小平面useOwnContainer属性来解决。
plane.useOwnContainer=true;

但是发现如果有多个平行平面垂直于一平面的时候,useOwnContainer会导致平行平面之间视角失真的问题,看来还得找其他办法。如图,注意深蓝色平面。


正常情况


失真情况

更新:是Z-fighting的问题,用ViewportLayer和QuadrantRenderEngine来解决。具体如下
import org.papervision3d.render.QuadrantRenderEngine;
import org.papervision3d.view.layer.util.ViewportLayerSortMode;
...
viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;
renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);
...
viewport.getChildLayer(target).layerIndex = 1;
viewport.getChildLayer(floor).layerIndex = -100;

标签: , , ,

2008年12月24日 星期三

两个FLash问题

1. Flash CS3里面无法向FLex一样调用文件的问题
下面这种方式在CS3里面无效,
[Embed(source="zhaiduo.jpg")] private var zhaiduo:Class;

我们可以把文件导入库library, 通过linkage ID调用。如:linkage ID为"Zhaiduo"。
var zd:Zhaiduo=new Zhaiduo(100,100);
var myBitmap:Bitmap = new Bitmap(zd);


2. NetStream无法播放非本地FLV视频文件的问题
NetStream只允许本地bitmapData.draw。所以只有声音看不见影像。例子可以看里
Nabble上有这样一段解释:
The only way around this is to deliver your video via a custom
configured flashCom server. (Open source solutions include red5 and
haXeVideo). These flashCom servers have to send a flag with the
NetStream that allows bitmapData.draw for your domain. Regardless,
you aren't going to get this from a remote server.

标签: ,

Powered by Blogger

订阅
帖子 [Atom]