'공부'에 해당되는 글 47건

  1. 쏭군이 좋아하는 한국의 웹디자이너 (14) 2008/10/26
  2. 디자이너를 위한 팔방미인 블로그 - 스푼 그래픽스 블로그 2008/08/30
  3. M&A 전쟁의 시작 '그린메일' (6) 2008/07/30
  4. 돈 받고 구글에게 프리젠테이션을 가르치는 사람 (6) 2008/06/01
  5. 플래시 액션스크립트 사전 (4) 2008/04/16
  6. [펌] 플래시 갖가지 노하우 2008/04/16
  7. (미완성포스트) CSS 박스모델, margin과 padding, border 등의 이해 (4) 2008/04/03
  8. 왜 웹표준인가? (89) 2008/02/10
  9. Web2.0 스타일 무료아이콘 300개 (14) 2008/01/20
  10. 익스플로러에서 한글 폰트 사이즈 11픽셀이 안먹히는 경우 (24) 2008/01/19
  11. 일본어 공부 - 思い 생각 생각 생각! (4) 2008/01/08
  12. 당신은 디자인 하고, 우리는 코딩하고! (33) 2007/12/26
  13. 무료 Mac OS X 아이콘 다운로드 (4) 2007/12/26
  14. 라디오버튼 + 이미지 조합, 모든 브라우저에서 클릭과 정렬맞추기 (8) 2007/12/10
  15. 기대되는 CSS3의 background와 border 모듈 몇 가지 (8) 2007/11/26
  16. 2007년 EJU에 출제된 몇 문제 (2) 2007/11/26
  17. 완벽한 디자인의 웹사이트 모음 The FWA (8) 2007/11/22
  18. IE6/5.5에서 :hover :focus 속성 앵커태그 이외에 주는 법 (14) 2007/11/04
  19. div, class는 남발을 줄이고, class명은 의미에 맞게 지어요 (4) 2007/10/15
  20. 테이블과 CSS로 달력 미니 캘린더 디자인 해보기 (6) 2007/10/05
  21. 접었다폈다하는 링크롤 소스 배포합니다 (9) 2007/10/03
  22. 웹표준에 의한 웹페이지제작 (2) 2007/09/01
  23. 일어 반말 구사법 (10) 2007/08/15
  24. 스페인어 La señorita guapa 2007/07/29
  25. CSS span 태그에 가로 사이즈를 주기 (2) 2007/06/17
  26. 굿디자인사이트 - gmunk, 스카이마블, SLVN (2) 2007/05/13
  27. 일본어동화 - 明日は天気だ(내일은 좋은날씨다) (2) 2007/05/13
  28. 스페인어의 남성명사와 여성명사 (2) 2007/05/09
  29. EJU 종합과목 37문제 (2) 2007/05/02
  30. EJU(일본유학시험) / 일본경제 이해를 위한 기초지식 2007/05/02


쏭군은 디자인에 매우 관심이 많습니다.
2000년대 초반에는 쏭군도 디자이너로 잠시나마 활동했지만, 군생활 전후해서 섬세함을 완전 상실했죠. 그 이후로 디자이너로는 맥도 못추고 있지만, 아직까지 디자인을 보는 눈은 남아있어서 다행입니다. 앞으로 제가 디자인을 하는 일은 얼마 없겠지만, 디자인을 보는 눈은 더욱 키워갈 것 입니다...^^ 건축이든 웹이든.. 생활에서 감각이 차지하는 것은 크니까요^^

오래전, 일본의 유고나카무라(yugop.com)씨로 부터 촉발된 플래시 액션스크립트를 활용한 미술작품은, 수학과 미술, 그리고 컴퓨터라는 새로운 조합으로 사람들을 감탄하게 만들었습니다. 현업 DJ였던 에릭조던2advanced.com 이라는 모션그래픽 사이트로 노가다 모션그래픽과 사이버틱한 느낌의 웹사이트 디자인을 전 세계에 전파하기도 하였지요. 힐만커티스조슈아 데이비스 같은 훌륭한 디자이너들이 여러가지 감각적이고 실험적인 디자인을 할 때, 우리나라에도 '설은아'라는 디자이너가 혜성같이 등장을 합니다. 현재는 포스트비쥬얼의 대표로서 8년째 회사를 이끌어오고 계시죠~

사용자 삽입 이미지

한 때, 우리나라 웹디자이너들 개인홈페이지이에서 유행했던 스타일. 3D맥스와 사진, 그리고 포토샵과 다양한 툴을 활용하여 웹아트를 만들어 내는 것이 디자이너들 사이에 유행처럼 번졌던 적이 있습니다.


모든 문화적인 측면에서 우리나라 사람들은 해외의 예술가나 디렉터를 동경하는 경향이 있고, 국내의 디렉터들을 무시하는 경향이 있는데요. 우리나라에도 훌륭한 디렉터들이 많습니다.

오늘은 쏭군의 넋을 잃게 만드는, 훌륭한 웹디자이너&모션그래퍼 분들을 소개할까 합니다. 제 블로그를 방문하시는 분들 중 디자이너분들께 자극이 되는 자료였으면 좋겠습니다..^^

조학래님 (http://2inside.com/)
2inside.com을 운영하고 계시는 학래님입니다. 모션그래픽으로 유명하신 분이시죠. 이 분 스타일은 심플한 듯 하면서도 화려한, 잠시도 눈을 뗄 틈을 주지 않는 스피디함이 매력입니다. 포트폴리오 메뉴를 보시면 나도 모르게 계속 클릭.. 클릭하여 다른 포트폴리오를 보게 됩니다. 최근에는 애프터이펙트를 활용하는 비중이 높아지신 듯 합니다.

정병기님 (http://www.motion-wave.com/)
웹디자이너이자 플래셔이신 정병기님의 웹사이트 입니다. 이 분의 매력은 깔끔하고 군더더기 없는 디자인이 매력 포인트 입니다. 깔끔하지만 허전하지 않게 시각적으로 자원을 잘 배분하시는 분인 듯 합니다. 최근엔 개인웹사이트를 통해서는 이렇다 할 활동을 보여주지 않으셔서 약간 아쉽습니다^^

스카이마블(박광현)님 (http://www.skymarble.com/)
한국에 플래시가 자리 잡을때부터 플래시로 디자인을 해 오신분들이라면 반론없이 인정하실 한국 모션그래픽의 대가, 스카이마블님 입니다. 3D객체를 잘 활용하셔서 한 때 저를 감탄하게 만드셨던 분인데 리뉴얼 한 지 오래된 현재 웹사이트를 지금봐도, 정말 멋지다는 감탄사가 절로 나옵니다. 학래님과 함께 일 하시는 회사의 홈페이지(www.switchmw.com)을 제작하시기도 하셨죠. 이제 이분은 그냥 웹디자이너의 수준을 넘어스신지 오래고, 혼자서 3D 영상까지도 만들어 내시는 듯 한데.. 자세한건 포트폴리오를 보세요~

정상훈님 (http://www.zeeha.com/)
베를린과 뉴욕에 eBoy가 있다면 한국에는 '지하공작실'이 있다고 해도 될까요^^? 우리에게 익숙한 싸이월드 미니룸과 미니미를 만드는 일을 하고 계신분입니다. 일러스트레이터 작업도 하시지만 특별히 도트디자인에서 더 빛나시는 것 같습니다. 예전부터 도트 잘 찍는 분들 부러워했는데요.. 이 분 작품을 보시면 뭐 말도 안나옵니다. 대단하다는 말밖에는^^;; 작업물 하나하나가 정말 섬세합니다.

Trackback Address >> http://monoeyes.com/trackback/673

댓글을 달아 주세요

  1. BlogIcon promise4u 2008/10/26 03:54  address  modify / delete  reply

    한때 쏭군도 알아주는 모션그래퍼였자나요 monoeyes.com 으로 상도 타던 ㅎㅎ

    지금은 모션그래픽보다 경제 이슈에 능하지만 :)

  2. BlogIcon cider 2008/10/26 09:05  address  modify / delete  reply

    정병기님은.. 조학래님의.. 스위치에 들어가신듯.. 스위치 홈피에서 정병기님 포폴 있음..

  3. BlogIcon cider 2008/10/26 09:13  address  modify / delete  reply

    헉.. 조학래님의 스위치가 아니었던가? 몇년간 그렇게 알고 있었던건.. 전 참 바보같이 살았군요.. ㅠㅠ

    • BlogIcon 쏭군 2008/11/01 15:28  address  modify / delete

      학래님하고 마블님하고 그렇게 몇 분이 의기투합해서 만든걸로 알 고 있습니다....

  4. BlogIcon solister 2008/10/30 09:16  address  modify / delete  reply

    디자인은 역시 쏭군님이죠^^

  5. BlogIcon prsong 2008/11/03 17:45  address  modify / delete  reply

    우와 멋진 정보 감사해요^^ 전 디자인 보는 눈도, 디자인 능력도 없지만 즐기는 건 좋아해요.
    다음엔 링크하실 때 새창열기로 부탁이요ㅎㅎ
    (알려주면 고마운 줄이나 알지! 이런 태클을^^;;)

    • BlogIcon 쏭군 2008/11/04 23:42  address  modify / delete

      앗~! 새창 열기로 되어있는데, 새창으로 안 열리나보네요.. 확인 해 볼게요^^ 참참.. 팁하나 드리면 Ctrl 키를 누른 상태에서 링크를 클릭하면 모든 링크가 새 창으로 열린답니다^^;

  6. BlogIcon jnheo 2008/11/06 09:48  address  modify / delete  reply

    이런거 볼때 마다 저도 플래시 잘하고 싶어요 ㅠㅠ엉엉

  7. 강짱 2008/11/11 11:15  address  modify / delete  reply

    감탄할 만한 저런 사이트 ,정보 감사해요~



이 블로그는 진작에 소개해드리려고 했는데, 이제야 소개해드립니다.

사용자 삽입 이미지

'스푼 그래픽스'라는 블로그 입니다. 디자이너분들에게 유용한 정보를 다양하게 제공합니다. 팔방미인 디자인 블로그라고 말씀 드리고 싶네요.. 으흐흐^^ 그럼 이 블로그에서 어떤 정보들을 제공하는지 소개드리겠습니다~

사용자 삽입 이미지

일러스트레이터를 이용해서 다양한 아이콘이나 일러스트들을 어떻게 만드는지, 그 과정들이 튜토리얼들로 모아서 정리를 잘 해두었습니다. 일러스트레이터로 드로잉하는 것에 취약한 디자이너시라면 공부할만한 소스가 많이 있으니 꼭 들러보시라고 권해드리고 싶습니다.

사용자 삽입 이미지

XHTML과 CSS를 활용하여 만든 U.I. 구성요소를 다운로드 받을 수 있도록 서비스하고 있으며, 가끔 관련된 강좌도 올라옵니다.

사용자 삽입 이미지

디자인이 잘 되어 있는 블로그를 수집하여, 독자들에게 소개하는 코너도 꾸준히 운영되고 있습니다. 뛰어난 디자이너의 블로그인 만큼 여기서 소개하는 블로그들의 디자인 역량도 상당한 수준입니다. 과연 워드프레스나 무버블타입 같은 블로그가 저렇게 바뀔 수 있다는 것을 보고 감탄을 마지 않았습니다^^ 굿~

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

디자인에 필요한 벡터아이콘이나, 비트맵 텍스쳐 같은 것들도 많이 제공하고 있습니다. 여기서 제공되는 것들은 모두 무료이므로 다운로드 받으시고 사용하는데 전혀 문제가 없습니다.

저는 RSS로 구독을 하고 있습니다.

여러분들께서도 관심이 가시면 이 블로그의 RSS를 구독하시기를 권해드립니다.

스푼디자인 블로그 RSS주소 : http://feeds.feedburner.com/SpoonGraphics

Trackback Address >> http://monoeyes.com/trackback/638

댓글을 달아 주세요



그린메일 경영권을 위협할만큼 지분을 매집한 뒤, 기존 경영진에게 경영권을 위협한다. 이를 빌미로 자신들이 매집한 금액보다 비싼 값을 불러서 단기간에 차액을 챙기는 행위를 말한다.

사용자 삽입 이미지
대한그룹은 한국의 여느 재벌처럼 지배구조가 엉망이다. 그룹 오너는 소유지분이 얼마되지도 않으면서 그룹전체 계열사들을 진두지휘한다. 네오트러스트는 외국계 사모펀드로 대한민국 재계서열 7위의 대한그룹이 지배구조가 엉망인 것을 파악하고 지분 6%이상을 취득한다.

이때부터 이 외국계 사모펀드는 대한그룹을 괴롭히기 시작한다. 현 지배구조가 마음에 들지 않으므로 경영진 교체를 위한 주주제안을 하겠다고 한다. 대한그룹의 박찬민 회장과 임원들은 난리가났다. 네오트러스트는 자신들의 주주제안을 막는 방법은 자신들이 매집한 주식에 프리미엄을 붙여서 다시 주식을 사가는 방법 뿐이라고 엄포를 놓는다. 대한그룹은 결국 백기를 든다. 이들이 제시한 자금을 그룹내에서 조달하기 어렵게되자, 탄탄한 계열사인 대한토건의 자금을 네오트러스트에 내주고 대한토건 자금의 부족부분은 양도성예금증서(CD)형태로 조성해둔다.

이 사건으로 인해서 대한그룹은 전쟁에 휘말리게 되는데, 대한토건의 회계감사는 그룹내에서 손을서 회계사를 살해하는 방법으로 일단 해결은 했지만, 무작정 버틸수도 없었다. 대한그룹은 결국, 부족한 자금을 충당하기 위해서 망해가는 중견 전자회사인 혜성전자를 인수하기 위해서 물밑작업을 한다. 이 작업에는 박찬민이 마지막 에너지를 모두 모아서 모은 자금 500억이 활용된다. 500억은 벨기에에 '페이퍼컴퍼니' 설립에 자본금으로 사용되고, '티파트너스'라는 이름이 붙는다.

론스타 사건에서도 볼 수 있듯이, 벨기에와 우리나라는 조세협약이 되어있다. 론스타가 수 천억대 건물을 매입하고, 국내 건실한 은행을 인수하고도 세금은 한 푼도 내지 않은 것은 '합법'이다. 이것은 론스타가 벨기에에 가짜 법인을 설립하고, 이 법인을 통해서 한국에 투자했기 때문에 모든게 가능했다.

대한그룹도 이 선례를 활용하여 벨기에에 페이퍼컴퍼니를 설립하고 이 회사를 통해서 혜성전자 인수에 총력을 기울인다. 대한그룹은 혜성전자 자체에 관심이 있는 것이 아니라, 혜성전자가 경기도 신갈에 보유한 땅에 관심이 있었던 것이다. 이 땅만 팔면 대한토건에서 세탁한 자금을 아무 문제 없이 장부조작하여 메워놓을 수 있는 것이다.

사용자 삽입 이미지
혜성전자 인수에 '니코스홀딩스'라는 작은 투자회사가 등장한다.
대한그룹은 혜성의 공장부지만 매각하고 회사를 버릴참이였지만, 니코스홀딩스는 혜성전자를 진정으로 경영정상화 하고자 인수를 추진한다.

대한민국 재계 서열 7위의 대기업과 30대 초반의 젊은 사장이 운영하는 투자회사의 싸움. 피인수 회사의 피만 빨아먹으려는 자와, 진정 피인수회사의 경영을 정상화 시키고 이를 통해 이윤을 창출하고자 하는 자의 싸움. 그리고 이 싸움에는 해외 굴지의 투자회사들, 그리고 명동의 사채업자들 등 많은 사람들이 연관된다.

이외에도 이들의 가정사와 연애사에 얽힌 이야기도 책의 백미다. 다양한 사람들의 이권이 얽혀있고, 감정이 얽혀있는 복잡한 책이지만, 1권을 들자마자 순식간에 2권까지 다 읽어버렸다.
책 표지 뒤에 나와있듯이. 뉴스만 봐서는 절대로 알 수 없는, 기업 불법 비자금 조성과정, 차명 계좌 관리, 주가조작, 불법 경영권 승계와 사람 납치와 살해를 아주 손쉽게 하는 이들의 일상이 적나라하게 묘사되어 있다. 그리고 책을 읽는 동안 M&A전쟁에 어느새 나도 모르게 빠져들어 영준을 응원하고 있었다.

이들의 전쟁뒤에 숨어있는 슬픈이야기들도 놓치지 말고 음미해보자.

Trackback Address >> http://monoeyes.com/trackback/620

댓글을 달아 주세요

  1. BlogIcon 하느니삽 2008/07/31 17:26  address  modify / delete  reply

    작가는 나름 심각하게 얘기를 풀어내려고 한 것 같은데, 줄거리가 코메디에 가까운 것 같습니다. -_-

    • BlogIcon 쏭군 2008/07/31 19:34  address  modify / delete

      글쎄요..

      일단은 소설이라는 점에서 줄거리가 코메디든 뭐든 상관없이 저는 재미있게 읽었구요..^^

      스토리를 재미있게 꼬아놔서..
      여러가지 상식들도 많이 얻은 것 같구요..

      글쓴이가 실제로 M&A현장에서 겪은걸 썼으니.. 하느니삽님이 생각하고 본 것 보다 풍부한 경험을 가지고 있겠지요.. 그 경험을 바탕으로 썼다면.. 경험이 없는 사람들이 보기에는 코메디가 될 수 있겠네요^^

    • BlogIcon 하느니삽 2008/07/31 21:00  address  modify / delete

      경험자의 입장에서 코메디로 봤던 것이었습니다.

    • BlogIcon 쏭군 2008/08/01 09:39  address  modify / delete

      아, 그렇군요.
      경험 운운한 것은 죄송하게 생각합니다.

      책의 말머리에 저자가 쓴 프롤로그를 읽어보면 책의 재미를 위해서, 그리고 M&A를 모르는 일반 독자들을 위해서 약간은 과장된 스토리를 만들어두었다고 적혀있습니다. 소설이니까요..^^

      이 책 한 권이 탄생하기 위해서 많은 분들이 장시간 노력을 하셨을겁니다. 그리고 그렇게 어렵게 탄생한 책을 저는 재미있게 읽었구요. 그러면 그만 아닌가요^^;

      제가 괜찮다고 평가한 책에 '코메디'라고 댓글이 달려서 언짢은 대답을 드린 것 같습니다.

      M&A는 무수한 경우의 수가 존재하기 때문에, 어느 한 사람의 경험만으로는 이야기할 수 있는 것들이 제한적이라고 생각합니다. 저자는 자신의 경험을 최대한 살려서 이야기를 꼬아보려고 했던 것 같고, 약간 말이 안되는 부분들도 있지만 독자들이 책에 몰입하고 재미있게 읽었다면 그걸로 책의 역할은 충분한 것이라고 봅니다.

      '소설'이라는 타이틀을 달고 나온책이 꼭 100% 현실적일 필요는 없다는 것이 제 생각입니다.

      만약, 모든 창작물들을 전문가들이 평가한다면 '코메디'라는 평 밖에 나올 수 없습니다. 어떤 드라마든, 영화든, 소설이든 그것은 전적으로 저자가 쓰기 나름이니까요^^

    • BlogIcon 하느니삽 2008/08/01 12:37  address  modify / delete

      제가 코메디라는 표현을 써서 기분이 상하셨었군요. 리플을 달기 전에 조금 더 깊게 생각했어야 하는데, 죄송합니다.

    • BlogIcon 쏭군 2008/08/02 13:45  address  modify / delete

      저도 죄송합니다^^
      그나저나 M&A 경험이 있으시다고 해서 말씀인데,
      어떤건 이였나요..
      하느니삽님께서 가지고 계신 이야깃거리들이 궁금해지네요^^





멋진 프레젠터가 되기위해 꼭 봐야하는 동영상 입니다.
PT전문가이자 프리젠테이션 디자인 전문가인 Garr Reynolds (www.presentationzen.com)
가 구글에서 강연한 동영상 입니다.

스티브잡스의 키노트와도 약간은 일맥상통하는 부분이 있군요..
그나저나 중간에 부시 대통령 노래짱이군요 ㅎㅎ -ㅅ-

Trackback Address >> http://monoeyes.com/trackback/603

댓글을 달아 주세요

  1. coolgun 2008/06/01 21:55  address  modify / delete  reply

    좋은 자료를 이해할 수 없다는게 너무 슬프군요

  2. BlogIcon 앤더슨 2008/06/02 01:45  address  modify / delete  reply

    대단한 사람이군요^^

  3. BlogIcon Groovie 2008/06/03 09:17  address  modify / delete  reply

    영상 고맙습니다~
    Garr Reynolds의 블로그에 종종 들어가서 프레젠테이션 정보를 얻곤 하는데 그의 프레젠테이션 모습을 영상으로 보기에는 오늘이 처음이네요...
    블로그의 내용들이 총 집약된듯한 재밋있는 스토리텔링식의 프레젠테이션인것 같군요~~~

    • BlogIcon 쏭군 2008/06/09 03:12  address  modify / delete

      네, 저도 100% 이해는 못 했습니다만...
      동영상에 홀려서 끝까지 가만히 앉아서 보고는
      중간중간에 폭소하고.. 그랬네요..
      재밌는 사람이에요^^;



----------------------------------------------------------------------------
// .....       주석 기호 
/* ..... */    주석 기호 
----------------------------------------------------------------------------
\r        // 리턴 코드  (ASC 13)
\n        // 줄바꿈 코드 (ASC 10)
\r\n      // 줄바꿈 코드  (2줄)
\t        // Tab 코드 (ASC 9)
\b        // Backspce 코드 (ASC 8)
&         // text 파일 데이타 구분 코드
----------------------------------------------------------------------------
산술연산자  +, -, *, /, %                 //  %  나머지를 구한다
대입연산자  =, +=, -=, *=, /=, %=         //  i+=4 와  i=i+4 는 같다
증감연산자  ++, --                        //  i++  와   i=i+1 는 같다 
비교연산자  ==, !=, >, <, >=, <=          //  !=  '같지않다' 로 해석
비교연산자  ===                           //  숫자 와 문자 구분
a = 5;    b = "5";                        //  숫자 5 와 문자 "5"
(a == b)                                  //  숫자 5 와 문자 "5"  는 같다 (true)
(a === b)                                 //  숫자 5 와 문자 "5" 는 틀리다 (false)
논리연산자  &&, ||, !                     //  그리고(AND), 또는(OR), 아니면(NOT)
조건연산자  ?    ( a ) ? b : c ;          //  a 조건이 맞으면 b 틀리면 c 실행
x=5;  y=10;  z=(x<6) ? x: y;   trace (z); //  z 은 5 이다
문자연산자  eq  ne  not  or  add          //  eq(==) ne(!=) not(!) or(||) add(+ 문자열의 연결)
( )                                       //  연산의 순서를 정한다
[ ]                                       //  배열을 지정한다
" "                                       //  문자를 지정한다
a=1+2;  trace(a);                         //  연산 결과 출력.  결과는 3
aaa=1;  set("ccc", aaa );  trace(ccc);    //  변수에 값을 지정.  결과는 1
aaa=1;  set("ccc", "aaa");  trace(ccc);   //  변수에 값을 지정.  결과는 aaa
set("ooo", getProperty ("ppp", _x ));     //  ppp x 좌표를  ooo 에 지정.
----------------------------------------------------------------------------
for (a=1; a<=10; a++)  { trace("a="+a); };             //  for  반복문
for (i=1; i<=120;  i+=12) { continue; };               //  for step 반복문
while(true) {  if(a == 0) { break; }; };               //  while  반복문
do { if(a == 0) { break; }; };  while(true);           //  do 반복문
if((n == 0) || (n >= 5)  &&  (n <= 55)  !(n=15)) {     //  if 조건문
 gotoAndPlay(1);
} else if (n == 2) {
 gotoAndPlay(2);
} else {
 gotoAndPlay(3);
};
num_ch = 3;                                             //  switch 조건문
switch (num_ch) {                                               
      case 1:    trace ( " case 1 tested true " );  break;
      case 2:    trace ( " case 2 tested true " );  break;
      default:    trace ( " no case tested true " );
};
----------------------------------------------------------------------------
function sumnumber(a,b,c) {  return(aaa= a+b+c); };    // 함수
sumnumber(1,2,3);
trace(aaa);
----------------------------------------------------------------------------
Math.abs(-1)              //  절대값.   결과는 1
Math.sin(1)               //  sin 값.   결과는 0.841470984807897
Math.cos(1)               //  cos 값.   결과는 0.54030230586814
Math.tan(1)               //  tan 값.   결과는 1.5574077246549
Math.log(2)               //  log 값.   결과는 0.693147180559945
Math.exp(1)               //  지수 값.    결과는 2.71828182845905
Math.sqrt(9)              //  제곱근 값.    결과는 3
Math.pow(2 , 4)           //  거듭제곱 값.    결과는 16
Math.ceil(1.1)            //  가까운 정수로 올림 값.    결과는 2
Math.ceil(1.5)            //  가까운 정수로 올림 값.    결과는 2
Math.floor(1.2)           //  가까운 정수로 내림 값.    결과는 1
Math.floor(1.7)           //  가까운 정수로 내림 값.    결과는 1
Math.round(1.2)           //  가까운 정수로 반올림 값.    결과는 1
Math.round(1.5)           //  가까운 정수로 반올림 값.    결과는 2
Math.max(1 , 2)           //  두 정수 중 큰 정수값.    결과는 2
Math.min(1 , 2)           //  두 정수 중 작은 정수값.    결과는 1
int(1.12 );               //  수치를 정수화.   결과는 1    
int(1.82 );               //  수치를 정수화.   결과는 1    
parseInt("3.2");          //  문자열을 정수화.  결과는 3    
parseInt("3.7");          //  문자열을 정수화.  결과는 3    
parseInt("5abc");         //  문자열을 정수화.  결과는 5
parseInt("abc5");         //  문자열을 정수화.  결과는 NaN    
parseInt("3E8", 16);      //  16 진수로 변환.   결과는 1000
parseInt("777", 8);       //  8 진수로 변환.   결과는 511
parseInt("1010", 2);      //  2 진수로 변환.   결과는 10
parseFloat("2")           // 문자열을 부동점 숫자로 변환.  결과는 2
parseFloat("2.4")         // 문자열을 부동점 숫자로 변환.  결과는 2.4
parseFloat("2.6abc")      // 문자열을 부동점 숫자로 변환.  결과는 2.6
Number("11")              //  문자열을 숫자로 변환.   결과는 11
Number("12.34")           //  문자열을 숫자로 변환.   결과는 12.34
Number("12.34abc")        //  문자열을 숫자로 변환.   결과는 NaN
sss = 123;  uuu = sss.toString();      // 숫자를 문자로변환.  결과는 123
ord("abc");                            //  ASCII 값.   결과는 97
s = "abc";   sss = s.charCodeAt(0);    //  1번째 ASCII 값 .   결과는 97
s = "abc";   sss = s.charCodeAt(1);    //  2번째 ASCII 값.    결과는 98
chr(65);                               //  ASCII 코드를 문자화.  결과는 A
String.fromCharCode(64,65,66);         //  ASCII 코드를 문자화.  결과는 @AB
Math.random();                         // 난수 발생.  결과는 0 - 1 사이의 소숫점 포함한 값
random(5);                             // 난수 발생.  결과는 0,1,2,3,4 중 하나
----------------------------------------------------------------------------
// delete 변수 또는 객체 ;             // 변수를 삭제  (var 로 선언된 변수는 삭제할 수 없다)
account = 1;   trace (account) ;                      // 결과는 1 
account = 1;   delete account;    trace (account);    // 결과는 undefined
delete onEnterFrame;                                  // 반복 실행 중지
----------------------------------------------------------------------------
typeof( );            // String, Number, MovieClip, Object, Boolean, Function 여부를 지정
trace (typeof(1));    // 결과는 Number
trace (typeof("1"));  // 결과는 String
trace (typeof(aaa));  // aaa가 무비클립 이라면  결과는 MovieClip
----------------------------------------------------------------------------
isFinite( );            // 숫자가 유한수이면 true 무한수거나 음의 무한대이면 false
trace (isFinite(aaa));  // aaa 값이 NaN 이라면 결과는 false
----------------------------------------------------------------------------
Mouse.show();           // 마우스 보임
Mouse.hide();           // 마우스 감춤
myClip.허용되지않은 태그 사용중 = function () {trace (" depth 무시"); };     // 마우스 누를 때
myCli허용되지않은 태그 사용중Up = function () {trace ("depth 무시"); };        // 마우스 눌렀다 놓을 때
myCli허용되지않은 태그 사용중Move = function () { trace ("depth 무시"); };     // 마우스 이동할 때
myClip.onPress = function () { trace ("depth 적용"); };         // 마우스 누를 때
myClip.onRelease = function () { trace ("depth 적용 "); };      // 마우스 눌렀다 놓을 때
myClip.onReleaseOutside = function () { trace ("Outside"); };   // 마우스 나가서 놓을 때
myClip.onRollOver = function () { trace ("Over called"); };     // 마우스 오버 때
myClip.onRollOut = function () { trace ("Out called"); };       // 마우스 아웃 때
----------------------------------------------------------------------------
// 단추무비클립 클릭후 액션 스크립트를 넣는다
on (press){           }  // 마우스 버튼을 누를 때   };  x  }  o
on (release){         }  // 마우스 버튼을 눌렀다 뗄 때
on (releaseOutside){  }  // 마우스 버튼을 누르고 나가서 뗄 때
on (rollOver){        }  // 마우스 포인트가 위로 올라올 때
on (rollOut){         }  // 마우스 포인트가 밖으로 나갈 때
on (dragOver){        }  // 누른 채로 밖으로 나갔다가 다시 들어올 때
on (dragOut){         }  // 마우스버튼을 누르고 바깥으로 드래그할 때
on (keyPress){        }  // 지정한 키를 누를 때
----------------------------------------------------------------------------
// 무비클립 클릭후 액션 스크립트를 넣는다
onClipEvent (load) {            }  // 시작 될때  };  x  }  o  
onClipEvent (unload) {          }  // 제거 될때
onClipEvent (enterFrame) {      }  // 트리거 될때
onClipEvent (mouseMove) {       }  // 마우스가 이동할 때
onClipEvent (mouseDown) {       }  // 마우스 클릭 시
onClipEvent (mouseUp) {         }  // 마우스 클릭 후
onClipEvent (keyDown) {         }  // 키를 누를 때
onClipEvent (keyUp) {           }  // 키를 눌렀다 놓을 때
onClipEvent (data) {            }  // loadVariables 또는 loadMovie 액션에서 데이터가 수신될 때
----------------------------------------------------------------------------
TextField.onChanged = function () { trace ("onChanged called"); };
// 텍스트 필드의 내용이 변경될 때
TextField.onSetFocus = function () { trace ("onSetFocus called"); };
// 텍스트 필드의 내용 부분에 마우스가 클릭 될 때
TextField.onKillFocus = function () { trace ("onKillFocus called"); };
// 텍스트 필드의 내용 바깥 부분에 마우스가 클릭 될 때
TextField.onScroller = function () { trace ("onScroller called"); };
// 텍스트 필드의 내용이 스크롤 될 때
----------------------------------------------------------------------------
myMovieClip.onData = function () { trace ("onData called"); }; 
// 무비 클립이 loadVariables 또는 loadMovie 호출로부터 데이터를 받을 때
myMovieClip.허용되지않은 태그 사용중 =  function () { trace ("허용되지않은 태그 사용중 called"); }; 
// 무비 클립이 load 호출로부터 데이터를 받을 때
myMovieClip.onUnLoad =  function () { trace ("onUnLoad called"); }; 
// 무비 클립이 Unload 때
myMovieClip.stop()  
// 작업 중지
----------------------------------------------------------------------------
myDate = new Date();                               // 날짜 로드
myDate = new Date (년,월,일,시,분,초);             // 날짜 지정
yyyy = (myDate.getFullYear() + "-" + (myDate.getMonth() + 1) + "-" + myDate.getDate());
tttt = (myDate.getHours()+ " :" + myDate.getMinutes() + " :" +myDate.getSeconds());
----------------------------------------------------------------------------
_root.onEnterFrame = function() {   };             // 메인화면에서 프레임 반복
onEnterFrame = function() {   };                   // 심볼화면에서 프레임 반복
----------------------------------------------------------------------------
tmtm = getTimer();          
onEnterFrame = function() {
  if ( (getTimer()-tmtm) >= 500 ) { tmtm=getTimer(); trace (tmtm); };   // 0.5초후 반복실행
  if ( (getTimer()-tmtm) >= 1000 ) { tmtm=getTimer(); trace (tmtm); };  // 1초후 반복실행
  if ( (getTimer()-tmtm) >= 2000 ) { tmtm=getTimer(); trace (tmtm); };  // 2초후 반복실행
};
----------------------------------------------------------------------------
onEnterFrame = function() {                                
   nr += 1;  if (nr > 5 )  {  delete  onEnterFrame;  };           // 5번 반복실행후 중지
   trace (nr);
};
----------------------------------------------------------------------------
createTextField ("ins", 1, 100, 100, 50, 50)
ins.border = true;
function callback() {
   ins._x += 5;
   if ( ins._x > 400 ) { clearInterval( intervalID );  };      // 중지 (clearInterval)
}
var intervalID;
intervalID = setInterval( callback, 100 );             //  0.1초후 반복실행 (setInterval)
----------------------------------------------------------------------------
#include "script.as"         // script.as 파일 넣기 (액션 스크립트 txt 파일)
----------------------------------------------------------------------------
System.useCodepage = true;   // 한글 깨짐 방지
trace(System.capabilities.language)          // Flash Player가 지원하는 언어. 결과는 ko
trace(System.capabilities.hasVideoEncoder)   // 지원되는 비디오 인코더. 결과는 true, false.
trace(System.capabilities.hasAudioEncoder )  // 지원되는 오디오 인코더. 결과는 true, false.
trace(System.capabilities.hasAudio)          // 오디오 성능이 있는지 여부. 결과는 true, false.
trace(System.capabilities.hasMP3)            // MP3 디코더가 있는지 여부. 결과는 true, false.
----------------------------------------------------------------------------
escape("abc가나다");         // URL에 사용하기 위해 인코딩.
// System.useCodePage= true; 일때 결과는 abc%B0%A1%B3%AA%B4%D9
// System.useCodePage= false; 일때 결과는 abc%EA%B0%80%EB%82%98%EB%8B%A4
----------------------------------------------------------------------------
trace(targetPath(this));     // 대상 패스를 반환.  결과는 _level0.instance1 로 표시
trace(this.valueOf());       // 결과는 _level0 로 표시
----------------------------------------------------------------------------
trace(this.getBytesLoaded());  // 무비클립의 로드된 바이트 수를 알려준다.
trace(this.getBytesTotal());   // 무비클립의 전체용량 바이트 수를 알려준다.
----------------------------------------------------------------------------
getURL("C:/")                                          // 탐색기 열기
getURL("C:/Windows/NOTEPAD.EXE");   };                 // 메모장 열기
getURL("C:/Program Files/Accessories/WORDPAD.EXE");    // 워드패드 열기
getURL("C:/Program Files/Accessories/MSPAINT.EXE");    // 그림판 열기
getURL("C:/Windows/CALC.EXE");                         // 계산기 열기
getURL ("aaa.exe");                                    // aaa.exe 파일 열기 (message)
getURL ("aaa.txt", "_self");                           // aaa.txt 파일 열기
getURL ("movie.html", "_self");                        // movie.html 파일 열기
getURL ("http://www", "_blank");                       // http://www 를 새로운 창으로 열기
----------------------------------------------------------------------------
Stage.showMenu = "true";        // 스크린 메뉴 보임
Stage.showMenu = "false";       // 스크린 메뉴 감춤 
Stage.scaleMode = "noScale";    // 화면의 사이즈를 고정
Stage.align = "TL";             // 화면의 정렬을 T(위) L(왼쪽)
           //  "T" 위 가운데    "B" 아래 가운데    "L" 가운데 왼쪽    "R" 가운데 오른쪽
           //  "TL" 위쪽 왼쪽   "TR" 위쪽 오른쪽   "BL" 아래쪽 왼쪽   "BR" 아래쪽 오른쪽
Stage.height      // 픽셀로 표시된 스테이지의 높이
Stage.width       // 픽셀로 표시된 스테이지의 넓이
----------------------------------------------------------------------------
_root.createEmptyMovieClip("box",1);      // 스테이지 테두리 주기
with (_root.box) {  moveto(1, 1);   linestyle(10, 0x00cc00, 100);
    lineto(stage.width, 1);     lineto(stage.width, stage.height);
    lineto(1, stage.height);    lineto(1, 1);   };
----------------------------------------------------------------------------
fscommand("showmenu", true);      // 스크린 메뉴 보임
fscommand("showmenu", false);     // 스크린 메뉴 감춤
fscommand("allowscale", true);    // 스크린 크기에 따라 무비의 크기도 변함
fscommand("allowscale", false);   // 스크린 크기에 따라 무비의 크기도 안변함
fscommand("fullscreen", true);    // 풀 스크린 (esc키 누르면 해제)
fscommand("fullscreen", false);   // 풀 스크린을 원래의 크기로 만든다
fscommand("trapallkeys", true);   // 키보드 키 사용할 수 없음 (풀 스크린 일때 esc키 먹통)
fscommand("trapallkeys", false);  // 키보드 키 사용할 수 있음
fscommand("quit");                // 스크린 닫기
fscommand ("exec", "a.exe");      // a.exe 파일 실행 (no message)
   플래시 무비(exe) 가 위치하는 폴더안에 fscommand 라는 하위 폴더를 만들고
   fscommand 디렉토리에  a.exe 가 있을때 플래시 무비(exe)를 실행하면 a.exe파일 실행
----------------------------------------------------------------------------
// getURL 로 javascript 사용하기
var hello = "Hello, World";
getURL("javascript:alert(\" "+ hello + "  \")");   // 메세지 띄우기
getURL("javascript:window.self.close()");          // 윈도우창 닫기
getURL("javascript:window.external.AddFavorite('http://','가')" );    //즐겨찾기 추가
----------------------------------------------------------------------------
// fscommand 로 javascript 사용하기
1.  fscommand ("messagebox", "This is a Flash.");   // aaa.swf flash script
2.  파일메뉴 - 제작설정 - 포맷 (HTML체크) - HTML (템플릿: with FSCommand 체크)
3.  파일메뉴 - 제작 (파일명은 aaa.swf) -  aaa.html 파일이 디렉토리에 만들어 진다
4.  aaa.html 파일을 열고  function aaa_DoFSCommand(command, args) {  아래에
      if (command == "messagebox") {  alert(args);  };   을 적고 저장 한다
5.  aaa.html 실행 (실행후 제작설정 해제)
----------------------------------------------------------------------------
// fscommand 로 javascript 의 변수값 불러오기
1. fscommand ("search", TextFieldvar);     // aaa.swf flash script
2. if (command == "search") {              // aaa.html script
       EEEfind = "FFFFFFFF";
       window.document.aaa.SetVariable("TextFieldvar", EEEfind) ;
       return TextFieldvar;
    };
3. aaa.html 실행
----------------------------------------------------------------------------
_root.loadMovie("a.swf");            // swf 파일 불러오기
_root.bbb.loadMovie("a.swf")         // swf 를 메인에 있는 bbb무비클립인스턴스에 불러오기
_root.loadMovie("a.swf", 1);         // swf 를 레벨1로 불러오기 (2 는 1를  screen over)
_root.loadMovie("aaa.jpg");          // jpg 파일 불러오기
_root.bbb.loadMovie("aaa.jpg");      // jpg 파일을 메인에 있는 bbb무비클립인스턴스에 불러오기
unloadMovie (1);                     // 레벨 1에 로드된 무비를 언로드
unloadMovie ("a.swf");               // 현재 무비에 로드된 a.swf 무비를 언로드
_root.bbb.unloadMovie();             // 메인 타임라인의 bbb 무비클립에 로드된 무비를 언로드
this["bbb"].unloadMovie();           // 현재 타임라인의 bbb 무비클립에 로드된 무비를 언로드
sss.bbb.unloadMovie();               // sss 심볼 타임라인의 bbb 무비클립에 로드된 무비를 언로드
----------------------------------------------------------------------------
button.onPress = function() { _root.loadMovie("aaa.swf"); }     // aaa.swf 실행중 초기화 하기
----------------------------------------------------------------------------
_root["ball_"+counter]._x = 11;       //  메인 화면의 클립 좌표
this["ball_"+counter]._x = 11;        //  현재 화면의 클립 좌표
aaa["ball_"+counter]._x = 11;         //  aaa 심볼 화면의 클립 좌표
----------------------------------------------------------------------------
this.createEmptyMovieClip("aaa", 1);             //  무비클립 생성 (2 는 1를 screen over)
this.duplicateMovieClip (aaa, bbb, 1);           //  aaa 무비클립  bbb 로 복사
this.bbb.removeMovieClip();                      //  bbb 무비클립 삭제
myClip._visible = true;                          //  클립 보임
myClip._visible = false;                         //  클립 감춤
myClip.swapDepths(100);                          //  클립 깊이 100 으로 지정 (2 는 1를 screen over)
myClip.swapDepths(otherClip);                    //  클립 깊이 otherClip 과 바꿈
for (i=1; i<=360; i++)  {                        //  클립 복사
     duplicateMovieClip (ins1, "mc"+i, i);
     setProperty ("mc"+i, _x, random(300));
     setProperty ("mc"+i, _y, random(300));
     setProperty ("mc"+i, _alpha, random(300));
     setProperty ("mc"+i, _xscale, 150);
     setProperty ("mc"+i, _yscale, 150);
};  
for (i=1; i<=360; i++)  {                        //  클립 복사
     duplicateMovieClip (ins1, "mc"+i, i);
     this["mc" + i]._x = i;
     this["mc" + i]._y = i;
};  
for (i=1; i<=50; i++)  {                          // 클립 이동
      this["mc_"+i]._x += 10;
      this["mc_"+i]._y += 10;
}; 
for (i=1; i<=360; i++)  {                         // 클립 삭제
     this["mc" + i].removeMovieClip ();
}; 
----------------------------------------------------------------------------
setProperty ("mv", _x, 150);           // mv 무비클립 x좌표 속성 변경
myMovieX = getProperty( mv, _x);       // mv 무비클립 x좌표 속성 읽기
trace(myMovieX);
----------------------------------------------------------------------------
_alpha              알파값(%)
_currentframe       현재재생중인 프레임(#)
_droptarget         드래그 앤드드롭 할때 놓는 타깃위치(name)
_framesloaded       로드된 프레임수(#)
_height             높이(#)
_name               인스턴스(string)
_rotation           회전값(#)
_soundbuftime       사운드버퍼링 시간(기본값 5초:#)
_totalframes        총프레임수(#)
_url                다운로드한 URL(string)
_visible            보인다,안보인다 (true,false)
_width              가로길이(#)
_x                  x좌표(#)
_y                  y좌표(#)
_xmouse             마우스x좌표(#)
_ymouse             마우스y좌표(#)
_xscale             x배율(%)
_yscale             y배율(%)
----------------------------------------------------------------------------
_root.a.play;                    //  메인에 있는 a무비클립  프레임 재생
_root.a.stop;                    //  메인에 있는 a무비클립  프레임 중지
play();                          //  stop으로 정지된 현재타임라인의 프레임 재생
stop();                          //  현재타임라인의 프레임 중지
gotoAndPlay(1);                  //  현재 Scene의 1프레임 재생
gotoAndPlay("a");                //  현재 Scene의 Label명 a 재생
gotoAndPlay("Scene 2", "c");     //  Scene 2의 Label명 c 재생
a.gotoAndPlay(1);                //  a무비클립의 1프레임 재생
gotoAndStop(1);                  //  현재 Scene의 1프레임 중지
nextScene();                     //  다음 장면의 프레임 1로 보내고 중지
prevSecne();                     //  이전 장면의 프레임 1로 보내고 중지
nextFrame();                     //  다음 프레임으로 보내고 중지
prevFrame();                     //  이전 프레임으로 보내고 중지
toggleHighQuality ();            //  저해상도와 고해상도 간을  전환
updateAfterEvent();              //  화면을 갱신 (onClipEvent 핸들러 내에서만 사용)
                                  //  (허용되지않은 태그 사용중,  onMouseUp,  onMouseMove)
----------------------------------------------------------------------------
tellTarget ("../a") { nextFrame(); } //  ../a 무비클립을 호출후 다음 프레임 재생
if (_framesloaded = 10) {  }         // 만약 무비의 10프레임이 로드되면
----------------------------------------------------------------------------
// with 문
for (i=0; i<1000; i++) {
    with (aaa[i]) {
       _x = Math.floor(Math.random() * 500);
       _y = random(500);
       _rotation = random(360);
   }
}
// tellTarget 문 (속도빠름)
for (i=0; i<1000; i++) {
    tellTarget (aaa[i]) {
       _x = Math.floor(Math.random() * 500);
       _y = random(500);
       _rotation = random(360);
    }
}
----------------------------------------------------------------------------
aaa = new Array();              // 배열 초기화   
aaa = new Array("1","2","3");   // 배열값 넣기
bbb = ["Sun","Mon","Tue"];      // 배열값 넣기
aaa[1] = "abc";                 // 배열값 변환  ( "2" 가 "abc" 로 변환)
aaa[0] = "Jan" ;  aaa[1] = "Feb" ;  aaa[2] = "Mar" ;         // 배열값 변환
aaa[3] = "Apr"                  // 배열 추가 (aaa 값은  "Jan,Feb,Mar,Apr" )
ccc = aaa.concat(bbb);          // 배열 합침 (ccc 값은  "Jan,Feb,Mar,Apr,Sun,Mon,Tue" )
ddd = ccc.join("/");            // ,를  /로 변환  (ddd 값은  "Jan/Feb/Mar/Apr/Sun/Mon/Tue" )
ddd = ccc.length;               // 배열값 갯수 (ddd 값은  7 )
ddd = ccc.slice(2,4);           // 배열값 읽기 (ddd 값은  "Mar,Apr" )
eee = ccc.push("z","zz");       // 배열추가후  배열값 갯수 (eee 값은  9 )
                                 //  (ccc 값은 "Jan,Feb,Mar,Apr,Sun,Mon,Tue,z,zz"   로 변함)
eee = ccc.pop();                // 마지막 배열 분리후 값  (eee 값은  "zz" )
                                 //  (ccc 값은  "Jan,Feb,Mar,Apr,Sun,Mon,Tue,z"   로 변함)
eee = ccc.shift();              // 첫번째 배열 분리후 값 (eee 값은  "Jan" )
                                 //  (ccc 값은  "Feb,Mar,Apr,Sun,Mon,Tue,z"   로 변함)
eee = ccc.reverse();            // 배열값 순서바꿈 (eee 값은  "z,Tue,Mon,Sun,Apr,Mar,Feb" )
                                 //  (ccc 값도  "z,Tue,Mon,Sun,Apr,Mar,Feb"   로 변함)
eee = ccc.splice(2,5,"x","xx","xxx");  // 배열값 읽기후  변환  (eee 값은  "Mon,Sun,Apr,Mar,Feb" )
                                        //  (ccc 값은  "z,Tue,x,xx,xxx"   로 변함)
eee = ccc.unshift("1","2");     // 첫번째 배열추가후  값  (eee 값은  "7" )
                                 //  (ccc 값은  "1,2,z,Tue,x,xx,xxx"   로 변함)
sss = new Array(1,2,3);         // 숫자 배열값 넣기
uuu = sss.toString();           // 문자로변환.  결과는 1,2,3
vvv = uuu.toLowerCase();        // 대문자를  소문자로 변환.  원래 값은 변경되지 않음     
vvv = uuu.toUpperCase();        // 소문자를  대문자로 변환.  원래 값은 변경되지 않음 
xxx = Number("111")             //  숫자로 변환.   결과는 111
xxx = Number("aaa")             //  숫자로 변환.   결과는 NaN
xxx = Number(true)              //  숫자로 변환.   결과는 1
xxx = Number(false)