這樣比較好!!?

話說前幾天CRAZE的網站趕在2月結束前更新上線了
但一如往常的,老闆總是不會在測試的時候看著DEMO跟妳說完全部要改的東西
非得等到東西上線了,才說這不行那不妥的 – -
而且還非要你改完才能走 因為這很重要!!!!!(阿不然DEMO是做好笑的嗎?)
改完後有時還覺得自己好像不太能跟得上老闆的品味
就比如舊版的banner播放:

新版:


真的是新版比較好嗎?
我怎麼一直覺得有點格格不入?違和感がないの?

其他大大小小要改得地方還真不少@@
看來我可以"慢慢"修了 哈~~

[新站上線]CRAZEリニューアル

這個網站從我去年10月進公司到現在一共花了要5個月說要更新了
終於….在今天要正式更新上線拉!!
雖說花了5個月…但其實行政上面的問題拖得比較久><
有做案子過的人都知道
案子拖越久 想改的地方就越多
從2D到3D 從一個城市變三個.....
動態更是修到....恩....總之就是非常煩...!!




不過透過這個網站
總算讓我比較了解一點PV3D的用法
而不是一味的COPY網路上先賢的程式來改
在配合CS4本身的3D功能
做出來的笑過還算不錯^^

不過 透過ModelLocator的方式
在removeChild時有蠻大的問題
監聽器好像會一直存在場景上
造成很多不知名錯誤跟讓FLASH越來越重….

還需要好好的研究一下解決方案才行@@

[flash] 讀入不同domain圖片

這個方法必須要能在目標domain的跟目錄中放入crossdomain.xml為前提
crossdomain.xml的內容為(全domain):

1
2
3
4
5
<?xml version="1.0" ?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" secure="true" /> 
</cross-domain-policy>

或是個別domain:

1
2
3
4
5
<?xml version="1.0" ?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*.example.com" secure="true" /> 
</cross-domain-policy>


在flash中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import flash.system.LoaderContext;
 
// LoaderContext準備
var context:LoaderContext = new LoaderContext(true);
 
var loader:Loader = new Loader();
var req:URLRequest = new URLRequest("http://www.example.com/sample.gif");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoad_Complete);
loader.load(req, context); // 加入第2個參數
addChild(loader);
 
private function imageLoad_Complete(e:Event):void {
 var _bit:Bitmap = Bitmap(e.target.content);  
 _pic = new MovieClip();
//為了放大時讓中心點會在中間
 _pic.x = imgWidth / 2; //imgWidth 請自行宣告
 _pic.y = imgHeight / 2; //imgHeight 請自行宣告
 
 _bit.width = imgWidth;
 _bit.height = imgHeight;
 _bit.x = imgWidth / 2 * -1;
 _bit.y = imgHeight / 2 * -1;
 
 addChild(_pic);
 _pic.addChild(_bit);
}

[FLASH] 時間倒數


很簡單 就是一個倒數的時間
比較需要注意的只有新建DATE物件時
月份的地方要減一 也就是10月的話是輸入9
分成兩位數顯示只是單純排列的問題囉!

至於字體(digital-7),可以到這邊下載

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var timedate:Date = new Date(2010,9, 29, 0);
function countDown(){
	var countdate:Date = new Date();
	var overDate:Number = timedate.getTime() - countdate.getTime();
	var dayNum = Math.floor(overDate / 24 / 60 / 60 / 1000);
	var hourNum = Math.floor(overDate / 60 / 60 / 1000) % 24;
	var minNum = Math.floor(overDate / 60 / 1000) % 60;
	var secNum = Math.floor(overDate / 1000) % 60;
 
	dayNum = dayNum < 100?"0" + dayNum:dayNum;
	dayNum = dayNum < 10?"0" + dayNum:dayNum;
	hourNum = hourNum < 10?"0" + hourNum:hourNum;
	minNum = minNum < 10?"0" + minNum:minNum;
	secNum = secNum < 10?"0" + secNum:secNum;
 
	day1.text = String(dayNum).substr(0,1);
	day2.text = String(dayNum).substr(1,1);
	day3.text = String(dayNum).substr(2,1);
	hour1.text = String(hourNum).substr(0,1);;
	hour2.text = String(hourNum).substr(1,1);;
	min1.text = String(minNum).substr(0,1);
	min2.text = String(minNum).substr(1,1);
	sec1.text = String(secNum).substr(0,1);
	sec2.text = String(secNum).substr(1,1);
 
	setTimeout(countDown, 1000);
}
countDown();

[新站上線]DISREV

很趕的只有一個禮拜的網站
還好是要求的東西也不難
比較麻煩的就是要自己用SMARTY寫後端

本來也有想用現存的免費CMS作後端
但是比較熟悉的WP太BLOG了
Drupal又需要更多時間去摸索
所以只好自己慢慢堆….

看起來很陽春…不過練習了一些PHP跟XML的控制
也算有點進步吧^^

不過其實有機會跟時間的話
還是比較想練習著用Drupal來做CMS
畢竟那是更多高手的智慧結晶
理論上應該克服很多了安全或程式上的BUG了才是….
而且…對於更往後的網站架構材更有幫助吧…

[javaScript]方便使用者的日期輸入by月曆


如標題跟上圖的效果….

下載下面的擋案後解壓縮到各自應該去的檔案夾:

不知道哪邊找來的…所以也沒有出處可以提供
應該..沒有關係吧….

在header中適當的地方放入

<link rel="stylesheet" href="/css/dhtmlgoodies_calendar.css" type="text/css" media="screen" charset="Shift_JIS">
<script src="js/dhtmlgoodies_calendar.js" type="text/javascript"><!--mce:0--></script>

然後是使用方式:

<input name="displaydate" size="12" type="text" value="{$form.display_date}" /><input onclick="displayCalendar(this.form.displaydate, 'yyyy-mm-dd', this)" type="button" value="囲" />

[smarty]XML製成

最近開始學習用SMARTY作網站
SMARTY簡單說就是可以把網站分成前端的VIEW(*.tpl)跟後端的處理的MODEL(*.php)
可以實現讓網頁"設計師"跟網頁"工程師"分工合作的理想境界
當然…我還沒有這個榮幸><
所以在才必須自己做完FLASH的前台網站後
很苦命的用SMARTY寫簡單的CMS
不過...能邊領薪水邊練習應該算是很不錯了...恩...人要知足......

由於目前的FLASH網站都是透過XML在拿資料
所以必須用SMARTY在資料庫中撈出資料後生成XML才行
使用時就可以用

update_bannersXML($mdb2,XML_DIR);

來呼叫就可以了(XML_DIR是定義在define.php中的存放XML檔案的實體路徑)

/**
 * トープバナー用xml生成
 * @param unknown_type $image 画像file名
 * @param MDB2_Driver_mysql $mdb2
 * @param unknown_type $file_location xml格納場所
 */
function update_bannersXML(MDB2_Driver_mysql &$mdb2,$file_location)
{
		$banners_lists = $mdb2->queryAll('SELECT * FROM ecr_banner_mst WHERE status = 1 ORDER BY sort_id');
				if (PEAR::isError($banners_lists)) {
			        echo '設定xmlエラー:ecr_banner_mst読み込めません。  '.$banners_lists->toString();
			        die();
			    }
        $xml =  '<?xml version="1.0" encoding="UTF-8"?>'."\n";
        $xml .= "<info_list>\n";
        foreach($banners_lists as $bannerkey => $bannervalue ){
	      	$xml .= "<topIMG>\n";
	      	$xml .= "<topIMG_id>" .$bannervalue['banner_id'] ."</topIMG_id>\n";
	      	$xml .= "<img_path><![CDATA[/pic/" .$bannervalue['image'] . "]]></img_path>\n";
	        $xml .= "</topIMG>\n";
        }
        $xml .= "</info_list>";
        $profile_xml = new SimpleXMLElement($xml);
        $profile_xml->asXML($file_location.'page1.xml');
}

沒有家的飛雪…

飛雪…是一隻蘇格蘭折耳貓
第一次在櫥窗看到她也沒有甚麼特殊的感覺
因為她還小得幾乎連眼睛都看不到
反倒是她媽媽倒是愛撒嬌的令人印象深刻
恩…就決定是她了!!加入我們的生活吧!!!

一旁的小涵笑得很燦爛 很溫馨
那是 2003年的 差不多跟現在相同的 冬天

帶飛雪回家後才發現她走路的姿勢怪怪的…可能是出生時腳被拉到的><
寵物店的人說可以讓我們換
但是...怎麼可能哩!!!這也是緣份不是~
我們是這麼相信著的~
就這樣開始我們的新生活,多了點...家的感覺

兩人一貓的辦家家酒其實還蠻新鮮的
剛開始我還可以用個大紙箱把她裝在裡面
然後地專心打我的RO..
後來 飛雪長大了 她開始會撒嬌 要找人陪 要找東西玩...也會耍脾氣!!
她在我這兒的日子 總是在鬧鐘響後 跳到床上用她很粗的舌頭叫我起床...
RO的BOT調的太久...她就會開始不爽的吵到讓人不得不停下來摸摸她
你必須很專心的看著她 跟她說說話 跟她玩一下...

但我跟她相處的時間其實也並不是很長
在我站衛兵的日子裡
她就跟小涵在台中相依為命著
只是偶爾會聽到她不爽小涵丟她一隻貓跑回台北時會很故意的在房間製造也讓人不爽的報復
那幾顆..或是那一攤傳說中的在床上的排泄物@@

相隔將近兩年之後
我下了崗來到台北開始那一段橘色的歲月
飛雪已經幾乎完全COPY的她媽的個性 恩 她媽媽的個性……
好!!好得狠喔!!!

來日本留學前
握跟小涵把飛雪託給了小涵的姐姐跟姐夫
我對她說..這是暫時的啦 我一定會接妳回家的..的…的…的…
那句話的回音好像還在我的耳邊轉呢
但是飛雪…對不起…我要食言了!!
因為我不知道要帶妳回哪裡…妳的家沒了!!跟我一樣~
我很自私,所以我沒有辦法面對看著妳時的那些回憶
那個很燦爛 很溫馨的笑臉

我知道在這邊幫她找新家的可能性很小
但是…如果就真的這麼剛好
麻煩跟我聯絡….

謝謝!!

———————————

感謝鋌鈺跟自農學長的幫忙
終於幫飛雪找到新家了~
希望她在新家可以開始她幸福快樂的生活…..

還有也感謝岳峻跟伊倫的關心
幫忙連絡了很多人 也找到很好心的不知名的陳先生
雖然最後沒有牽成…但還是非常謝謝妳們~^^

2010.03.02

[flash]AS3 打字效果

公司想要做一個巨乳時計跟現在正風行的美人時計一較高下
不過….其實就是抄襲啦 哈哈

不一樣的是主要的動態不是用JavaScript而是FLASH
而既然用FLASH就不會只是單純的淡入淡出
所以照片也要有點噗拎噗拎的效果
文字也要有一點不一樣的變化(話說回來…這些好像JavaScript也可以做到!?)

重新寫了一個打字效果的AS3 CLASS
其實就是在moviceClip裡先包了一堆命名好的TextField後
再用Timer控制其內容而已..
不過TextField的顏色用textColor控制老是怪怪的
所以只好在htmlText中用HTML標籤來補助…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package {
	import flash.events.*;
	import flash.display.MovieClip;
	import caurina.transitions.Tweener;	
	import flash.utils.Timer;
	import flash.text.TextField;
    import flash.text.TextFieldType;
 
	public class texts extends MovieClip {
		var mod:ModelLocator = ModelLocator.getInstance();
 
		var _playTimer:Timer = new Timer(25);
 
		var _name:String;
		var _birthday:String;
		var _home:String;
		var _blood:String;
		var _height:String;
		var _size3:String;
		var _occupation:String;
		var _web1:String;
		var _webUrl1:String;
		var _web2:String;
		var _webUrl2:String;
		var _web3:String;
		var _webUrl3:String;
		var _item1:String;
		var _itemUrl1:String;
		var _item2:String;
		var _itemUrl2:String;
		var _item3:String;
		var _itemUrl3:String;
 
		var _texts_arr:Array;
		var now_text:int;
		var max_text:int;
 
		public function texts() {
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event) {
			_playTimer.addEventListener(TimerEvent.TIMER, playText);
			mod.addEventListener("changeText", changeText);
		}
 
		private function changeText(e:CustomEvent) {
			_texts_arr = new Array([m_name, _name], 
									[m_birthday, _birthday],
									[m_home, _home],
									[m_blood, _blood],
									[m_height, _height],
									[m_size3, _size3],
									[m_occupation, _occupation],
									[m_web1, _web1],
									[m_web2, _web2],
									[m_web3, _web3],
									[m_item1, _item1],
									[m_item2, _item2],
									[m_item3, _item3]);
 
			max_text = 0;
 
			for (var i = 0; i < _texts_arr.length; i++) {
				var _text : TextField = _texts_arr[i][0];
				if (i >= 7) _text.textColor = 0x10CAF3;
 
				_text.text = "";
				if (_texts_arr[i][1]) {
					max_text = max_text < _texts_arr[i][1].toString().length?_texts_arr[i][1].toString().length:max_text;
					for (var j = 0; j < _texts_arr[i][1].toString().length; j++) {
						_text.appendText("_");
						checkUrl()
					}
				}
				now_text = 0;
				_playTimer.start();
			}
		}
 
		private function playText(e:TimerEvent) {
			for (var i = 0; i < _texts_arr.length; i++) {
				var _text : TextField = _texts_arr[i][0];
				if (i >= 7) _text.textColor = 0x10CAF3;
 
				if (_texts_arr[i][1]) {
					var tmp_length = _texts_arr[i][1].toString().length;
					if(tmp_length >= now_text){
						for (var j = 0; j < tmp_length; j++) {
							if (j < now_text) {
								_text.htmlText = "";
								_text.appendText(_texts_arr[i][1].toString().substr(0, now_text));
								for (var k = 0; k < tmp_length - now_text; k++) { _text.appendText("_"); }
								checkUrl();
							}
						}
					}
				}
			}
			now_text < max_text?now_text++:_playTimer.stop();;
		}
 
		private function checkUrl() {
			var tmpHeader:String = '<font color="#10CAF3"><a href="';
			var tmpFooder:String = '</a></font>';
			m_web1.htmlText = tmpHeader + _webUrl1 + '">' + m_web1.text + tmpFooder;
			m_web2.htmlText = tmpHeader + _webUrl2 + '">' + m_web2.text + tmpFooder;
			m_web3.htmlText = tmpHeader + _webUrl3 + '">' + m_web3.text + tmpFooder;
			m_item1.htmlText = tmpHeader + _itemUrl1 + '">' + m_item1.text + tmpFooder;
			m_item1.htmlText = tmpHeader + _itemUrl2 + '">' + m_item2.text + tmpFooder;
			m_item1.htmlText = tmpHeader + _itemUrl3 + '">' + m_item3.text + tmpFooder;
		}
	}
}

[pv3d]flash翻牌效果

雖然是一個老掉牙的效果
真的要自己做還是要好好想一下
所以也好好的做一下筆記…


如圖跟標題…就是向撲克牌一樣的翻牌效果
設計師也只是要求翻過來後加上陰影跟MOUSEOVER的光影
全部都用Tweener的濾鏡解決!!
我也懶的再提供其他動態的IDEA..心情無力到像是AS工人了@@
我好懷念在橘子的熱血喔~
年輕真好!!!

廢話太多 = =

回到原題~要四張牌用四個BasicView的原因是:
如果只用一個BasicView放四張牌,
只有CAMERA前的牌的翻轉角度是正常的,
其他的會因為視角的差異看起來很怪,
重點是如果翻轉時跟其他牌重疊到,
會因為PV3D運算的問題!?開始出現類似癲間的顫抖….
所以用四個BasicView架四台CAMERA就正常了
線上WEB SITE

但是…高手發明的東西應該有更聰明的解決方式..我覺得啦~
向是把CAMERA的z軸拉遠再把撲克牌放大!!?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package{
 
	import flash.display.*;
	import flash.events.*;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.Timer;
	import flash.geom.Matrix;
	import flash.net.navigateToURL;
	import flash.filters.*;
	import flash.utils.getDefinitionByName; //引入getDefinitionByName方法;
 
	import org.papervision3d.objects.primitives.*;
	import org.papervision3d.materials.*;
	import org.papervision3d.events.*
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.view.layer.ViewportLayer;
	import org.papervision3d.materials.BitmapAssetMaterial;
	import org.papervision3d.view.layer.util.ViewportLayerSortMode;
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.render.QuadrantRenderEngine;
 
 
	import caurina.transitions.Tweener;
	import caurina.transitions.properties.FilterShortcuts;
	import caurina.transitions.properties.ColorShortcuts;
 
	public class Main extends Sprite {
		var mod:ModelLocator = ModelLocator.getInstance();
		var banner_URL:String;
		var bannerLoader:URLLoader = new URLLoader;
 
		public function Main() {	
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
 
		private function init(e:Event) {
			mod.rooturl = this.loaderInfo.url.substring(0, this.loaderInfo.url.indexOf("/flash") );
			//mod.rooturl = "C:/Users/justfly/Documents/My Dropbox/ES/CRAZE OUTLET";
			FilterShortcuts.init();
			ColorShortcuts.init();
			banner_URL = mod.rooturl + "/xml/banner.xml";
			bannerLoader.load(new URLRequest(banner_URL));
			bannerLoader.addEventListener(Event.COMPLETE, bannerLoadComplete);
 
			init3DEngine();
		}
 
		private function init3DEngine():void {
			for (var i = 1; i <= 4; i++ ) {
				var _view:BasicView = new BasicView(0, 0, true, true, "Target");
				_view.x = -590 + 235 * i;
				_view.y = -10;
				_view.name = "view" + i;
				_view.camera.z = -350;
				_view.viewport.buttonMode = true;
				//_view.renderer = new QuadrantRenderEngine(QuadrantRenderEngine.CORRECT_Z_FILTER);
				addChild(_view);
			}
 
			this.addEventListener(Event.ENTER_FRAME, onEventRender3D);
		}
 
		private function bannerLoadComplete(e:Event) {
			mod.banner_XML = new XML(bannerLoader.data);
 
			for (var i = 1; i <= 4; i++ ) {
				var _view:BasicView = getChildByName("view" + i) as BasicView;
				var bgRootNode:DisplayObject3D= new DisplayObject3D();
				_view.scene.addChild(bgRootNode);
				var _img:String = mod.rooturl + mod.banner_XML.bg.img_path;			
				var _bmpMat:BitmapFileMaterial = new BitmapFileMaterial(_img);
				_bmpMat.smooth = true; // 平滑化
				var _plane	:Plane = new Plane(_bmpMat, 220, 295, 2, 2);
				_plane.useOwnContainer = true;
				_plane.alpha = 0;
				_plane.y = 20;
				_plane.rotationY = 0;
				_plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, on3DRollPress);
				_plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, on3DRollOver);
				_plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, on3DRollOut);
				bgRootNode.addChild(_plane);
				Tweener.addTween(_plane, { alpha: 1, y:0, time: 0.5, transition: "easeInOutQuad", delay: i * 0.5 } );
				Tweener.addTween(_plane, {
											_DropShadow_alpha:80,
											_DropShadow_angle:60,
											_DropShadow_blurX:10,
											_DropShadow_blurY:10,
											_DropShadow_distance:5,
											_DropShadow_color:"0x000000"
											}
								);
				Tweener.addTween(_plane,{
											rotationY	: 180,
											time		: 0.7,
											transition	: "easeOutCubic",
											delay		: 2+i*0.3
										}
									);
			}
			for (i = 1; i <= 4; i++ ) {
				_view = getChildByName("view" + i) as BasicView;
				var cardRootNode:DisplayObject3D = new DisplayObject3D();
				_view.scene.addChild(cardRootNode);
				_img = mod.rooturl + mod.banner_XML.banner[i - 1].img_path;
				_bmpMat = new BitmapFileMaterial(_img);
				_bmpMat.interactive = true;
				_bmpMat.smooth = true; // 平滑化
				_plane = new Plane(_bmpMat, 220, 295, 2, 2);
				_plane.useOwnContainer = true;
				_plane.rotationY = 180;
				_plane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, on3DRollPress);
				_plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, on3DRollOver);
				_plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, on3DRollOut);
				cardRootNode.addChild(_plane);
				Tweener.addTween(_plane, {
											_DropShadow_alpha:80,
											_DropShadow_angle:60,
											_DropShadow_blurX:10,
											_DropShadow_blurY:10,
											_DropShadow_distance:5,
											_DropShadow_color:"0x000000"
											}
								);
				Tweener.addTween(_plane,{
											rotationY	: 360,
											time		: 0.7,
											transition	: "easeOutCubic",
											delay		: 2+i*0.3
										}
									);
				}
		}
 
		private function on3DRollOver(e:InteractiveScene3DEvent):void {
			Tweener.addTween(e.displayObject3D, { _DropShadow_alpha:0 } );
			Tweener.addTween(e.displayObject3D, {
												_Glow_alpha:100,
												_Glow_blurX:8,
												_Glow_blurY:8,
												_Glow_color:"0xFFFFFF",
												_Glow_knockout:false,
												_Glow_inner:false,
												time:0.8,
												transition	: "easeOutSine"
												}
								);
		}
 
		private function on3DRollPress(e:InteractiveScene3DEvent):void {
		}
 
		private function on3DRollOut(e:InteractiveScene3DEvent):void {
			Tweener.addTween(e.displayObject3D, { _Glow_alpha:0, 
													_DropShadow_alpha:80,
													_Glow_blurX:0,
													_Glow_blurX:0
												} );
		}
 
		private function onEventRender3D(e:Event):void {
			for (var i = 1; i <=4; i++) {
				var _view:BasicView = getChildByName("view" + i) as BasicView;
				_view.singleRender();
			}
		}
	}
}
Page 1 of 3112345678910...Last »