Candle
 


Flash Object 표준으로 삽입

<object>, <parameter> 요소는 문서안에 다른 종류의 미디어를 삽입하는 데에 쓰인다. 예를 들어서 플래시 무비나 동영상 등을 문서안에 삽입할 때 이 HTML 요소를 사용한다.

<object> 태그와 대체 텍스트

<object> 태그는 포함하고 있는 컨텐츠를 대체 컨텐츠로 인식한다.

<object data="" type="">
	<p></p>
</object>

위의 경우 type에 지정된 적절한 플러그인을 찾을 수 없을 경우, 포함하고 있는 <p></p>의 내용을 대체 내용으로 이용하게 된다. <object>안에 다른 <object>를 중첩해서 사용하는 것도 가능하다.

<!-- 플래시 플러그인 -->
<object data="hello.swf" type="application/x-shockwave-flash">
	<!-- PNG 이미지 -->
	<object data="hello.png" type="images/png">
		<!-- GIF 이미지 -->
		<object data="hello.gif" type="images/gif">
			<!-- 일반 text -->
			<p>Hello!</p>
		</object>
	</object>
</object>

위와 같은 코드를 실행할 경우 브라우져는 바깥의 <object>부터 실행을 시도하고 실행을 시도한 플러그인의 실행을 실패 할 경우 안쪽의 <object>로 실행을 시도 한다. 각각의 <object>가 자신을 포함하고 있는 상위 <object>의 대체 컨텐츠 역할을 하게 되고 가장 깊이 있는 <p>는 상위 gif 이미지 <object>의 대체 내용이 된다.

Flash Object 표준으로 삽입

Macromedia Default

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="flash_movie" align="middle">
	<param name="allowScriptAccess" value="sameDomain">
	<param name="movie" value="flash_movie.swf">
	<param name="quality" value="high">
	<param name="bgcolor" value="#ffffff">
	<embed src="flash_movie.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="Untitled-1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
</object>

이 코드는 Macromedia Flash MX 2004 에서 publish 한 것으로 Macromedia 에서 제시한 일종의 cross-browsing code 이다. IE 에서는 classid 를 참조하여 Flash player 를 로딩을 하고 다른 브라우져에서는 embed 를 이용하여 Flash player 를 불로오도록 fallback 을 제공한 것이다. 하지만 이 방법은 deprecated element 인 embed 를 사용하고 있기 때문에 Valid 한 html 코드가 아니다.

W3C 표준 코드를 이용한 Flash player 로딩

<object type="application/x-shockwave-flash" data="images/banner.swf" width="140" height="40">
</object>

Object 표준을 사용하게 되면 실행될 데이터의 type 과 위치를 지정하는 data 만으로 Flash 등을 로딩 할 수 있다 . 하지만 IE 는 data 를 참조하여 Flash player 를 로딩하지 못하므로 IE 에서는 작동을 하지 않는다. 그래서 param 으로 무비 정보를 적어주어야 한다.

<object type="application/x-shockwave-flash" data="images/banner.swf" width="140" height="40">
	<param name="movie" value="images/banner.swf" />
</object>

이렇게 하면 valid 한 코드로 flash 무비를 불러올 수 있다. 하지만 IE 는 classid 가 없기 때문에 .swf 파일이 완전히 로드되기 전에는 무비가 나오지 않는다. 다시 말해서 flash 의 강점인 스트리밍 기능이 작동을 안해서 프리로딩 같은 기능을 사용할 수 없다. Flash 가 완전히 로딩될때 까지 사각형 박스가 생겨서 클라이언트의 클레임을 받을 수 있다. (실제로 클레임을 제기하는 클라이언트가 있었다.)

Flash Satay

A List Apart의 Flash Satay: Embedding Flash While Supporting Standards 방법을 이용하면 IE 의 오작동을 어느정도 피할 수 있다. 무비를 불러올때 크기(file size)가 아주 작은 container movie 를 사용하하여 미리 Flash player 가 로딩 될 수 있게 하면 프리로딩이나 스트리밍 문제는 해결 된다. 하지만 네트웍 상황이 좋지 않을때에 박스가 나오는 것은 어쩔 수 없다.

Hixie method

IE에는 HTML 상에서 조건문을 사용하여 내용을 제어하는 기능이 있다. 이것을 이용하면 표준 코드와 object fallback 을 이용해서 Flash player 뿐만 아니라 다른 object 들도 페이지에 삽입 할 수 있다.

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400">
	<param name="movie" value="flash_movie.swf">
	<!--[if !IE]> <-->
	<object type="application/x-shockwave-flash" data="flash_movie.swf" width="550" height="400">
		<p><img src="flash_movie.png" alt="" /></p>
	</object>
	<!--> <![endif]-->
</object>

IE에서는 바깥쪽의 classid로 플래시 플레이어를 로딩하고 안쪽의 IE Conditional Comment로 처리된 오브젝트는 주석으로 인식이 된다. 표준 브라우져에서는 바깥쪽의 classid에 해당하는 플러그인이 인식이 안되기(IE전용) 때문에 오브젝트를 로딩하는데 실패를 하게 되고 대체내용(fallback)인 하위 오브젝트를 불러오게 된다. 컨디셔널 코멘트는 IE 전용의 코드이기 때문에 영향을 받지 않고 주석으로 처리 된다. 하위 오브젝트안의 이미지는 플래시 플레이어가 없을 경우의 대체 내용을 제공한 것이다.

asp 코드에서 위의 코드를 사용하면 오브젝트 중첩 오류가 발생하는데 첫번째 오브젝트를 <%="<object"%>와 같이 표기하여 오류를 피할 수 있다.

관련링크

IE Eolas Patch 해결 간단 스크립트

마이크로소프트와 에올라스(Eolas)사가 서로 합의를 해서 인터넷 익스프로러가 이제 원래대로 작동하기 때문에 필요없게 된 내용입니다. (IE Automatic Component Activation Preview Now Available)

IE의 Eolas Patch를 간단하게 보정하는 스크립트이다. IE의 경우 <object>등의 상위 엘리먼트를 넣어주면 HTML을 지우고 스크립트로 삽입하여 테두리가 생기지 않고 바로 사용자 입력을 받게 해 준다. 컨텐츠의 접근성을 위해서 document.write로 삽입하지 않고 HTML상에 컨텐츠를 일단 삽입하고 script로 처리하는 방식이다.

Script

반드시 외부파일로 만들어서 <script type="text/javascript" src="ie-html-rewrite.js"></script>와 같이 불러들여야 한다.

function IE_HtmlRewrite(objParent) {
	if (window.ActiveXObject && objParent) {
		objParent.innerHTML = objParent.innerHTML;
	}
}

HTML

스크립트를 <object>바로 아래에 넣어도 되고 window.onload 이벤트로 넣어도 된다.

<div id="flash-movie">
	<object type="application/x-shockwave-flash" data="movie.swf">
	</object>
</div>
<script type="text/javascript">IE_HtmlRewrite(document.getElementById("flash-movie"))</script>

주의 할 점은 플래시에서 <param>을 이용해서 flashvar를 <object>로 넘기는 경우 값이 넘어가지 않게 된다. 이 경우 flashvar로 넘기지 않고 data나 movie에 GET방식으로 넘기면 된다.

<object type="application/x-shockwave-flash" data="movie.swf?myvar=myvalue">
</object>
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 쭈니


Trackback URL : http://css.isfreeweb.com/tc/trackback/4

Leave a comment
[로그인][오픈아이디란?]

브라우저 문서 영역 크기 구하기

브라우저의 문서 영역의 크기를 구할때
현재 보여지는 부분의 크기(clientWidth, clientHeight)와
실제 존재하는 부분의 크기(scrollWidth, scrollHeight)를 사용하게 되는데,

이게, 브라우저마다 또 표준 DTD 인지 여부에 따라 구하는 방법이 모두 상이하다.
그래서 간단한 함수로 만들어봤다.

IE5, IE55, IE6, IE7, IE8, FF2, Safari3, Opera9 에서 테스트 됨 (Language : javascript)
  1. /**
  2. * 브라우저 document 영역의
  3. * clientWidth/clientHeight, scrollWidth/scrollHeight 구하기
  4. *
  5. * @author hooriza
  6. */
  7. function getClientSize() {
  8.   var oDoc = document[document.compatMode == 'CSS1Compat' ? 'documentElement' : 'body'];
  9.   if (/Opera/.test(navigator.userAgent)) oDoc = document.body;
  10.   return [
  11.     oDoc.clientWidth,
  12.     oDoc.clientHeight
  13.   ];
  14. }
  15.  
  16. function getScrollSize() {
  17.   var oDoc = document[document.compatMode == 'CSS1Compat' ? 'documentElement' : 'body'];
  18.   if (/Opera|Safari/.test(navigator.userAgent)) oDoc = document.body;
  19.  
  20.   // IE6 미만이면
  21.   if (/MSIE\s([0-9]+(\.[0-9]+)*)/.test(navigator.userAgent) && parseFloat(RegExp.$1) < 6) {
  22.    
  23.     var aOld = [ oDoc.scrollLeft, oDoc.scrollTop ];
  24.     var aClient = getClientSize();
  25.    
  26.     oDoc.scrollLeft = 999999;
  27.     oDoc.scrollTop = 999999;
  28.    
  29.     var aRet = [
  30.       oDoc.scrollLeft + aClient[0],
  31.       oDoc.scrollTop + aClient[1]
  32.     ];
  33.    
  34.     oDoc.scrollLeft = aOld[0];
  35.     oDoc.scrollTop = aOld[1];
  36.    
  37.     return aRet;
  38.    
  39.   }
  40.   return [
  41.     oDoc.scrollWidth,
  42.     oDoc.scrollHeight
  43.   ];
  44. }

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 쭈니

, , ,
Response
No Trackback , No Comment
RSS :
http://css.isfreeweb.com/tc/rss/response/3

Trackback URL : http://css.isfreeweb.com/tc/trackback/3

Leave a comment
[로그인][오픈아이디란?]
출처 SuperMan | 찌노
원본 http://blog.naver.com/wltn222/90031850890
똑똑한 직장생활을 위한 TIP 15
이제는 성공의 사다리로 올라라!
 
 
한 남자는 한 여자를 만난다. 그녀와 사랑을 하고 동시에 섹스를 한다. 그리고 헤어진다. 남자의 연애는 이것의 반복이다. 허무하지 않은가? 이제는 패턴을 바꿔라. 당신의 연애를 마지막이라 생각하고 늘 최선을 다하라. 당신의 연애를 든든하게 지원해줄 최고의 룰을 모았다.
 
2년 후 월급을 2배로 올리는 방법 5가지
1 당신의 존재감을 높여라
“자신의 커리어를 관리하는 것과 현재 업무를 수행하는 것은 별개의 것입니다.” <승진한 사람과 승진 못한 사람의 차이Who Gets Promoted, Who Doesn't, and Why>의 저자인 도널드 애셔의 말이다. 회사에서 자신의 이미지를 형성한 다음, 그것을 직장상사에게 효과적으로 홍보하라. 당신의 지지자들로부터 좋은 평가를 받다보면 어느 순간 입사 동기들보다 훨씬 높은 위치에 있는 자신을 발견할 것이다.

2 현지 전문가가 돼라
글로벌 기업 특성을 이용해 회사의 요직을 노려라. 영업부와 신규사업개발팀처럼 이익 창출이 원활한 부서의 월급은 더욱 증가하고 인사 및 고객서비스팀과 마케팅 부서와 같이 지출이 많은 부서의 월급은 줄어든다. “만약 당신이 해외와 국내를 아우르는 일에 몸담고 있다면 현재 아주 전도유망한 커리어를 만들고 있는 것입니다.” 애셔의 조언이다.

3 합당한 보수를 요구하라
구인구직 시장에 대한 기초 자료를 토대로 회사로부터 최대한 높은 임금을 받아내라. “과거에 당신이 얼마의 연봉을 받았느냐는 상관없습니다. 중요한 것은 현재 이 업무에 대한 시장 가격이 얼마냐는 것이죠. 나를 고용하고 싶다면 그에 상응하는 대가를 지불해달라고 당당하게 이야기해야 합니다.” 애셔의 조언이다. 자사 또는 경쟁사에 근무하는 동료들과의 연락을 통해서 현장의 실제 급여 수준에 대한 정확한 파악도 놓쳐서는 안 된다.

4 인맥관리를 하라
당신이 새로운 일자리를 찾거나 도움이 필요할 때만 지인들에게 연락하는 것은 우리가 흔히 저지르는 인맥관리의 결정적 실수다. 인맥관리도 체계적으로 들어가야 한다. 예를 들면 매 분기마다 모든 지인들에게 연락을 하거나 짧은 문자와 함께 새로운 주식정보 등을 보내주는 것이 좋다.

5 사표를 내라
현 직장에서 근무하는 1년 동안 승진은커녕 여름휴가도 제대로 다녀오지 못했는가? 만약 당신이 다음 단계로 넘어갈 준비가 갖춰졌다면 현 직장을 떠나야 할 때가 온 것이다. 커리어 코치인 마티 넴코 박사의 조언이다.
 


남다르게 성공하는 법칙 4가지
1 승진이나 임금 인상을 요구하라 “비좁은 책상에 앉아 감 떨어지기만을 바라고 있다면, 당신은 지루하고도 슬픈 시간을 보내게 될 것입니다.” 커리어 코치이자 책 <커리어 제대로 개발하기Make the Right Career Move>의 저자인 레이첼 J. 캔터 박사의 조언이다. 캔터 박사는 누가 왜 승진했는지를 곰곰이 살펴보라고 조언한다. 직장상사에게 당신의 업무 실적과 목표에 대해 명확히 표현하라. 대접받지 못하는 영웅이 되어서는 안 된다. 당신이 이룬 성과는 반드시 상사가 알 수 있도록 하라.

2 자신의 스케줄을 상황에 맞게 설정하라 <직장생활에서 성공하는 비법Secrets to Winning at Office Politics>의 저자인 마리아 매킨타이어 박사는 당신이 일부 또는 전체 업무 시간을 활용해 재택근무에 임하고 싶다면 회사의 관리자 입장으로 다시 한 번 생각해보라고 조언한다. 당신의 업무 스케줄로 인해 상사에게 피해를 주고 있지는 않는가? 회사가 당신에게 물어보기 전에 언제 생길지 모를 방해 요소에 대해 미리 보고하라.

3 자신을 차별화하라 “현존하는 문제에 대한 새로운 접근법을 생각해본 뒤 당신이 그 문제들을 해결해도 괜찮은지 물어보세요.” 매킨타이어 박사의 말이다. “대부분의 관리자들은 업무를 신속하고 똑똑하게 더 잘해내는 직원을 높이 평가합니다.” 자신의 업무 처리 능력 중 모자란 부분을 찾아내고, 다음 업무를 위해 부족한 부분을 채우는 노력이야말로 단기간에 CEO로 갈수 있는 최고의 습관이다.

4 10분은 산책하라 운동을 함으로써 자신의 일에 대한 태도를 변화시키는 데 도움을 줄 수 있다. “짧은 산책으로 심신의 에너지를 충분히 향상시킬 수 있습니다.” <조용한 에너지Calm Energy>의 저자인 로버트 타이어 박사의 조언이다. 그는 연구 조사를 통해 단 10분간의 산책으로 120분 동안이나 에너지가 향상된다는 사실을 밝혀냈다. 열심히 일했다면 미련없이 쉬어라.
 
 




당신의 꿀맛 같은 휴가는 이럴 때 써야 한다!
1 직장 상사가 휴가에서 돌아오는 날
그는 자신이 처리하고 싶지 않은 엄청난 일더미를 안고 돌아올 것이다. 그리고 당신이 사무실을 비운 경우가 아니라면 분명 당신에게 그 일들을 떠넘기려고 들 것이다. 절대로 그의 뒤치다꺼리를 해줄 필요는 없다.

2 결혼기념일 혹은 만남 기념일
꽃다발과 싸구려 선물을 사느라 점심시간 내내 허둥거리는 것에 진력이 났다면 차라리 기념일 전날부터 휴가를 사용해 모든 스케줄을 꼼꼼히 챙겨보라. 선물, 축하카드, 베이비 시터, 분위기 좋은 레스토랑에 달콤한 샴페인까지. 이것들을 챙기려면 하루도 부족하다.

3 자동차를 구입하려는 날
구입하고 싶은 자동차를 결정했다면 두세 명의 판매원들에게 견적서를 요청하라. 그리고 비교적 한산한 화요일에 휴가를 내고 일찌감치 자동차 숍으로 가라. 가장 좋은 시기는 크리스마스와 1월 1일 사이로 월말과 연말이 함께 끼어 있기 때문에 가장 저렴한 가격으로 자동차를 구입할 수 있다.

4 가장 고대해온 영화의 개봉일
<스타워즈> 마니아였던 옛 시절을 떠올려보라. 아침 일찍 일어나 부모님을 닦달해 조조영화를 봤던 그 시절. 그 기억을 떠올려 당신이 손꼽아 기다렸던 영화를 가장 먼저 관람하는 영광을 만들어라.

5 자녀의 생일
1년이 지날 때마다 한 살씩 나이를 먹는 것은 아주 중요하고 소중한 것이라고 말해줘야 磯? 동시에 생일은 가장 소중하게 생각하는 사람과 보내야 한다고 알려줘라. 물론 당신이 직접 이벤트까지 준비한다면 더할 나위 없이 바람직한 교육이 된다
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 쭈니

, , ,
Response
No Trackback , No Comment
RSS :
http://css.isfreeweb.com/tc/rss/response/1

Trackback URL : http://css.isfreeweb.com/tc/trackback/1

Leave a comment
[로그인][오픈아이디란?]

블로그 이미지

쭈니의 개인블로그입니다. 웹표준,접근성,퍼블리싱 그리고, 니콘D80 이야기로 꾸려나갈 생각입니다.

- 쭈니

Archives

Authors

  1. 쭈니

Recent Comments

Recent Trackbacks

Calendar

«   2008/06   »
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          

Site Stats

Total hits:
564
Today:
4
Yesterday:
3