[안드로이드] 구글 안드로이드 버전 이름 AtoZ

이미지
전용뷰어 보기 구글이 안드로이드 이름을 지을때 알파벳 순서의 디저트로 이름을 지어 졌습니다. Apple Pie (Android 1.0) - 애플파이 (2008년 9월 23일 HTC G1에 탑재) 카메라, 블루투스 지원하지 않았지만 플래시와 html는 지원하지 않았습니다. 그리고 market place와 위젯도 포함되어 있었습니다. Banana Bread (Android 1.1) - 바나나브레드 (2009년 2월 9일 출시) T-모바일의 G1에 탑재 - 기존 버그 수정, API변경 - 구글지도 상세추가 - 스피커폰 타임아웃 시간 연장 - 통화며네에서 다이얼 화면 보기 및 숨기기 기능추가 - MMS 메시지의 첨부파일 저장 - 레이아웃에 marquee지원 Cupcake (Android 1.5) - 컵케이크 (2009년 4월 30일 출시 리눅스커널:2.6.27) - 동영상 녹화, 재생, 유튜브업로드, 피카사 사진 업로드 - 소프트 키보드와 키워드 제시 - 블루투스 A2DP, AVRCP지원 - 일정거리 안에서 블루투스 헤드셋 자동접속 - 홈화면 위젯, 폴더, 에니메이션 추가 - 한국어 추가 Donut (Android 1.6) - 도넛 (2009년 9월 15일 출시) - 턴바이턴네비게이션 지원 - 안드로이드 마켓 개선 - 카메라, 캠코더, 갤러리 인터페이스 내장 - 사진 여러장 삭제기능 추가 - 전화접속 속도 개선 - 검색개선, 즐겨찾기, 열어본 웹사이트, 연락처, 웹을 홈화면에서 검색가능 - CDMA, EVDO, 802.1x, VPNs, 제스처, 문자열 음성 변환엔진 - 800 x 400 WVGA - 플래시 lite 4 지원 Eclair (Android 2.0) - 이클레어 (2009년 9월...

[javascript] 이벤트 전파 (버블링/캡쳐링)

이미지
이벤트 전파 부모 - 자식의 계층 구조로 이루어진 각각의 요소(Element)에 이벤트를 부여할때 이벤트 발생순서를 정할 수 있습니다. addEventListener()  ele.addEventListener('click', callback, false) 이벤트를 추가할때 사용한 addEventListener()는 3개의 인자를 전달합니다. 순서대로 - 이벤트 타입 - 콜백함수 - 이벤트 버블(false), 이벤트 캡쳐(true) 이벤트 타입은 click이냐, mousedown이냐, touchstart냐, keyup이냐 등의 이벤트 종류를 설정합니다. 콜백은 이벤트가 발생하면 실행할 함수입니다. 마지막에 true, false로 전달되는 이벤트 버블링/캡쳐링에 대하여 알아보겠습니다. 이벤트 버블링(Event Bubbling) addEventListener의 세번째 인자는 boolean (true/false)으로 전달됩니다. false 는 버블링 (bubbling) true 는 캡쳐링 (capturing) 이라고 명칭합니다. 버블링 (bubbling) 버블링(false)는 자식노드부터 이벤트가 발생하여 부모로 이벤트가 전파됩니다. <div class="a"> <div class="b"> <div class="c"></div> </div> </div>   [스크립트] document.querySelector('.a').addEventListener('click', function(){ console.log('a'); },  false ); document.querySelector('.b'...

CSS로 iOS 액션팝업 비활성화 시키기 (선택/복사/붙여넣기 팝업창)

이미지
액션팝업 ios 사파리에서 '선택', '전체선택', '복사' 같은 명령을 할수 있는 팝업이 뜹니다. 이것을 Action Popup(액션 팝업) 이라고 하는데 css에서 간단하게 액션팝업을 사용하지 않게 설정해보겠습니다. <style type="text/css"> * { -webkit-user-select:none; } </style> 위 코드를 css에 추가하면 ios에서 액션팝업이 비활성화 됩니다. 특정 요소만 액션 팝업 허용하기 <style type="text/css"> *:not(#inpPaste) { -webkit-user-select:none; } </style> <input type="text" id="inpCopy"> <input type="text" id="inpPaste"> css의 selector를 이용하여 특정요소는 제외시킬수도 있고, 또는 특정 요소에만 적용할수도 있습니다.  끝!!ㅋ 무료다운로드:  https://apzw3.app.goo.gl/sheet  

네이버 블로그에서 이전작업 중..

네이버 블로그 사용하다가 네이버 애드포스트 광고 수익률도 낮고해서 애드센스 지원하는 블로그를 찾았다. 원래 백업블로그로 이글루스를 사용하기는 하는데, 이글루스에서 애드센스를 붙이는것도 꼼수가 필요하더군.. 대안은 가장 많이 사용하는 티스토리.. 하지만 티스토리 초대장을 얻지 못해서 결국은 예전에 만들어 둔 blogger를 이용하기로 했다. 네이버 블로그 글들을 하나씩 옮기는 작업도 보통일은 아닐듯한데 말이지..

[mobile] 모바일웹(Android, iOS)에서 a태그를 이용하여 문자보내기

이미지
안드로이드, iOS 모바일 웹에서 sms스키마를 이용하여 문자보내기를 할수 있습니다. 단, iOS에서 body는 지원하지 않습니다. // SMS호출하기 <a href="sms://">문자보내기</a> // SMS호출하기 & 번호전달 <a href="sms://+010-XXXX-781X">문자보내기</a> // SMS호출하기 & 여러명의 번호 전달 <a href="sms://+010-XXXX-781X, +010-XXXX-782X, +010-XXXX-783X">문자보내기</a> // SMS호출하기 & 번호전달 & 내용전달 (단, iOS에서는 body가 지원되지 않음, 안드로이드 전용) <a href="sms://+010-XXXX-781X,+010-XXXX-782X?body=hello안녕하세요.">문자보내기</a> 무료다운로드:  https://apzw3.app.goo.gl/sheet

[API] 다음맵 api 이용하기

이미지
웹에서 다음맵 연동하기 소스입니다. 먼저, http://dna.daum.net/myapi/mapsapi/new 링크에 가서 api를 등록하면 api키를 발급해줍니다. <script type= "text/javascript" src= "http://apis.daum.net/maps/maps3.js?apikey=발급받은 API키" ></script> 위 스크립트를 호출하고 api를 사용하면 됩니다. 아래 링크를 참조하세요. http://romeoh.github.com/daumMaps/ <!doctype html> <html> <head> <meta charset= "utf-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title></title> <style> #map {width: 320 px; height: 480 px} </style> <script type= "text/javascript" src= "http://apis.daum.net/maps/maps3.js?apikey=a3da9cb38e6f3e983247d85d60261f8a74dfd796" ></script> </head> <body> <div id= "map" ></div> <pre> https: //apis.daum.net/register/myapi.daum 에서 key등록후 사용하세요. </pre...

플래시 액션스크립트 3.0 나만의 정리 -1

플래시로 만들면 좋을거 같다.. 하는 아이디어가 떠올라서 오늘부터 플래시를 공부하기로 했다. '컴퓨터 언어는 책이 없어도 인터넷에 많은 자료를 통해서 충분히 익힐 수 있다'라는 주의어서 야웅닷컴의 액션스크립트 3.0 강의를 보기로 했다. 처음 예제를 보는데 이건 뭐 자바도 아니고-_-;; 액션스크립트 2.0과 3.0이 완전히 달라졌다는 말에 3.0을 공부하기로 했고, 최신버전인 flas cs3으로 공부하기로 했다. 예전에 플래시 소스라고 해서 받아서 2004 mx를 통해 봤는데 인터페이스가 적응이 안되어 관뒀던 기억이 있어서 새로운 버전으로 받은것이다.(이런 안좋은 기억에 대해 선택이 좌지우지 되는 경우가 많다.) 아무튼 금붕어 두뇌를 보조하기 위하여 이 게시물을 쓴다. 이 게시물은 기본적인 프로그래밍 지식이 있는 상태에서 본다면, 아 플래시가 이런 구조이구나, 정도의 개념파악을 할 수 있을 것이다. 간혹 변수명이 서로 다르고 생략된 부분이 많이 있는데, 그런건 크게 중요한건 아니므로 패스, 우선 강의의 48강까지의 내용을 초 간단하게 요약한 것이다. 다음강의가 xml 인거 보면 아무래도 복잡해 질거 같아 여기까지 정리해본다. 강의를 제공해주신 야웅닷컴과 김기준 강사님께 감사드린다. 1. 개체선언 시 변수선언 : var a:int 함수 선언 : public function Say():String 클래스 구현 : var 인스턴트명:클래스명 = new 클래스명(); 2. 클래스와 패키지 클래스는 as파일에서만 만들 수 있다. 액션스크립트의 Package{} == 네임스페이스 -> as파일의 다른 내용들을 감싼다. trace("동물")는 debug console 창에 '동물'이라 표시하라는 함수이다. package 안에는 1개의 클래스를 두는 것이 원칙이므로 2개의 클래스 Lion 클래스와 Cat 클래스는 package 밖에 코딩한다. Lion, Cat 클래스 앞에 있는 internal은 같은 패키지 내에서 참조할...

크로스도메인에서 플래시 XML연동

최근 이미지로딩 및 캐싱 문제로 이미지서버를 따로 분리하는 작업을 하고 있다. 이미지에는 문제가 없지만 플래시에는 문제가 발생했다. 일단 XML을 로딩해서 쓰는 플래시에서 연동이 안되는 문제가 발생했는데. (swf는 이미지서버에, xml은 웹서버에 위치해 있다) 즉 swf와 xml이 다른서버에 있게 되면 xml을 호출 할 수 없게 되는 것이다. 이 때는 크로스 도메인을 설정하여 xml을 호출하여야 하며 이를 크로스도메인정책파일 이라고 한다. 이문제를 해결하기 위해서는 두가지 사항을 추가해야 한다. 1. crossdomain.xml 설정 [?xml version="1.0" encoding="UTF-8" ?] [!-- DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" --] [cross-domain-policy] [allow-access-from domain="*.visualog.com" to-ports="*" /] [/cross-domain-policy] allow-access-from domain : 허용할 도메인 ( *.허용할도메인 ) to-ports : 허용할 포트 ( * 모든포트 ) 이 xml 파일을 루트 폴더 혹은 특정 폴더의 경로에 위치시켜주면된다. 자 크로스도메인xml파일을 설정했다면 이제는 2. 플래시 파일에도 허용도메인을 설정해야 한다. 액션 프레임을 만들어서 System.security.allowDomain("*"); System.security.loadPolicyFile("허용할도메인/특정폴더/crossdomain.xml"); crossdomain.xml의 경로가 루트일때는 위에 crossdomain.xml의 경로가 특정폴더 일때는 아래처럼 작성해...

prototype

냠. 무비클립에 관계된것. 모든 무비클립에 대한 global적이다. 변수지정 MovieClip.prototype.mov = "I'm moving!!!!"; 요로코롬 하면 모든 무비클립이 mov라는 변수를 가지게되고 그 변수 값은 "I'm Moving!!!!"이 되겠다. 함수지정 이건 너무도 잘알고 있는... MovieClip.prototype.mov = function(a,b,c,d) this._x = a; this._y = b; this._xscale = c; this._yscale = d; }; 모든 무비클립이 mov라는 함수를 가지고 있다. 이건 몰랐다. class지정. (지정이라기보단 상속이란다.) 턴옥이란 클래스가 마징가랑 건담을 가지고있는데 무뇽이란 클래스가와서 가치 가지고 놀재. 이럴때 쓸수 있지. 턴옥 = function(){ 마징가 건담 컴퓨터 } 무뇽 = function(){ 투스카니 } 무뇽.prototype = new 턴옥(); 이렇게 하면 무뇽이는 턴옥이의 것을 사용가능하게 된다는게야. 근데 무뇽이는 투스카니 안태워줘.

ColorMatrixFilter

import flash.filters.ColorMatrixFilter; import mx.transitions.Tween; import mx.transitions.easing.*; System.security.allowDomain("http://www.helpexamples.com"); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip):Void { // center movie clip instance on Stage target_mc._x = (Stage.width - target_mc._width) / 2; target_mc._y = (Stage.height - target_mc._height) / 2; target_mc.watch("brightness", brightnessWatcher, target_mc); // animate the target_mc movie clip between -100 and +100 brightness var myTween:Tween = new Tween(target_mc, "brightness", Elastic.easeOut, 100, -100, 3, true); myTween.onMotionFinished = function() { this.yoyo(); }; }; this.createEmptyMovieClip("img_mc", 10); var img_mcl:MovieClipLoader = new MovieClipLoader(); img_mcl.addListener(mclListener); img_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc); function b...

ConvolutionFilter (회선변경)

import flash.filters.ConvolutionFilter; import flash.display.BitmapData; this.createEmptyMovieClip("shape_mc", 1); shape_mc.createEmptyMovieClip("holder_mc", 1); var imageLoader:MovieClipLoader = new MovieClipLoader(); imageLoader.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", shape_mc.holder_mc); var matrixArr:Array = [1, 4, 6, 4, 1, 4, 16, 24, 16, 4, 16, 6, 24, 36, 24, 6, 4, 16, 24, 16, 4, 1, 4, 6, 4, 1]; var convolution:ConvolutionFilter = new ConvolutionFilter(5, 5, matrixArr); shape_mc.filters = [convolution]; var mouseListener:Object = new Object(); mouseListener.onMouseMove = function():Void { convolution.divisor = (_xmouse / Stage.width) * 271; convolution.bias = (_ymouse / Stage.height) * 100; shape_mc.filters = [convolution]; }; Mouse.addListener(mouseListener);

이미지 왜곡필터

import flash.filters.DisplacementMapFilter; import flash.geom.Point; import flash.display.BitmapData; var perlinBmp:BitmapData; var displacementMap:DisplacementMapFilter; var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip):Void { target_mc._x = (Stage.width - target_mc._width) / 2; target_mc._y = (Stage.height - target_mc._height) / 2; perlinBmp = new BitmapData(target_mc._width, target_mc._height); perlinBmp.perlinNoise(target_mc._width, target_mc._height, 10, Math.round(Math.random() * 100000), false, true, 1, false); displacementMap = new DisplacementMapFilter(perlinBmp, new Point(0, 0), 1, 1, 100, 100, "color"); shapeClip.filters = [displacementMap]; }; var shapeClip:MovieClip = this.createEmptyMovieClip("shapeClip", 1); shapeClip.createEmptyMovieClip("holderClip", 1); var imageLoader:MovieClipLoader = new MovieClipLoader(); imageLoader.addListener(mclListener); imageLoader.loadCl...

이미지에 노이즈효과

import flash.display.BitmapData; this.createTextField("status_txt", 90, 0, 0, 100, 20); status_txt.selectable = false; status_txt.background = 0xFFFFFF; status_txt.autoSize = "left"; function onMouseMove() { status_txt._x = _xmouse; status_txt._y = _ymouse-20; updateAfterEvent(); } this.createEmptyMovieClip("img_mc", 10); img_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg"); var noiseBmp:BitmapData = new BitmapData(Stage.width, Stage.height, true); this.attachBitmap(noiseBmp, 20); setInterval(updateNoise, 100); var grayScale:Boolean = true; function updateNoise():Void { var low:Number = 30 * _xmouse / Stage.width; var high:Number = 200 * _ymouse / Stage.height; status_txt.text = "low:" + Math.round(low) + ", high:" + Math.round(high); noiseBmp.noise(Math.round(Math.random() * 100000), low, high, 8, true); }

이미지 흐리게 하기

import flash.filters.BlurFilter; import mx.transitions.Tween; import mx.transitions.easing.*; this.createEmptyMovieClip("holder_mc", 10); holder_mc.createEmptyMovieClip("img_mc", 20); var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc._x = (Stage.width - target_mc._width) / 2; target_mc._y = (Stage.height - target_mc._height) / 2; var myTween:Tween = new Tween(target_mc, "blur", Strong.easeInOut, 0, 20, 3, true); myTween.onMotionChanged = function() { target_mc._parent.filters = [new BlurFilter(target_mc.blur, target_mc.blur, 1)]; }; myTween.onMotionFinished = function() { myTween.yoyo(); } }; var my_mcl:MovieClipLoader = new MovieClipLoader(); my_mcl.addListener(mclListener); my_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", holder_mc.img_mc);

table

1 1 1 1 table style="BORDER-COLLAPSE: collapse" bordercolor="#3e3e3e" cellspacing="0" cellpadding="3" rules="rows" width="500" border="2" frame="hsides"

filter.saturation

var myFilters = fl.getDocumentDOM().getFilters(); for(i=0; i if(myFilters[i].name == 'adjustColorFilter'){ myFilters[i].saturation = 0-100; } } fl.getDocumentDOM().setFilters(myFilters);

setTimeout

function hello(){ trace("hello") } intervalID = setTimeout(hello, 1000) clearTimeout(intervalID)

onLoadComplete

var loadListener:Object = new Object(); loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void { trace(">> loadListener.onLoadComplete()"); } loadListener.onLoadInit = function(target_mc:MovieClip):Void { trace(">> loadListener.onLoadInit()"); } var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.addListener(loadListener); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mcLoader.loadClip(" http://www.w3.org/Icons/w3c_main.png ", mc);

플래시 폰트

What you see is what you get :: 네이버 블로그

Using Drawing API methods and scripting animation

import mx.transitions.Tween; import mx.transitions.easing.*; var mclListener:Object = new Object(); mclListener.onLoadInit = function(target_mc:MovieClip) { target_mc._visible = false; // Center the image on the Stage. target_mc._x = (Stage.width - target_mc._width) / 2; target_mc._y = (Stage.height - target_mc._height) / 2; var maskClip:MovieClip = target_mc.createEmptyMovieClip("mask_mc", 20); with (maskClip) { // Draw a mask that is the same size as the loaded image. beginFill(0xFF00FF, 100); moveTo(0, 0); lineTo(target_mc._width, 0); lineTo(target_mc._width, target_mc._height); lineTo(0, target_mc._height); lineTo(0, 0); endFill(); } target_mc.setMask(maskClip); target_mc._visible = true; var mask_tween:Tween = new Tween(maskClip, "_yscale", Strong.easeOut, 0, 100, 2, true); }; this.createEmptyMovieClip("img_mc", 10); var img_mcl:MovieClipLoader = new MovieClipLoader(); img_mcl.addListener(mclListener); img_mcl.loadClip("http://www.helpexamples.co...