Search results for 'Flash'

Flash ImageGallery

2008/05/22 00:56

이번에 이미지 갤러리를 만들어 보기로 했다.

인터넷은 참 대단하다. 나처럼 플래시를 접한지 얼마 되지도 않은 사람에게도 원하는 프로그램을 할 수 있도록 도와주니 말이다.
아직은 이것 저것 많은 것을 알아가야 하지만, 또 다르게 하나 하나 알아가는 재미 또한 쏠쏠하다.

Thumbnail 이미지와 Large 이미지로 구성되는 갤러리 이다.
아직은 MovieClip 정도로 구현하였지만, 로드된 이미지 사이즈가 잘못된 겨우에도 지정된 이미지 사이즈로 표시될 수 있도록, 또한 로딩될때 로딩중 이라고 표시하는 부분을 더 보안할 점 들이다.


Flah image gallery demo
이올린에 북마크하기(0) 이올린에 추천하기(0)

happyness WEB/Flash , ,

2008/05/22 00:56 2008/05/22 00:56
[로그인][오픈아이디란?]

플래시에서 서버와 통신하기

2008/03/25 17:12

플래시에서 파라메터를 받아 서버와 통신하는 예제이다.
URLRequest와 URLLoader를 이용하여 구현하였다.

메인 소스:

[code]
import flash.events.Event;
import flash.events.IEventDispatcher;
import flash.events.IOErrorEvent;
import flash.events.HTTPStatusEvent;
import flash.events.ProgressEvent;
import flash.events.SecurityErrorEvent;

import flash.net.URLRequestMethod;

import flash.text.TextFieldAutoSize;
import fl.controls.Label;

import com.ericfeminella.collections.IMap;
import com.ericfeminella.collections.HashMap;

import kr.htdocs.net.HTTPRequest;

/* 파라메터를 받음 */
var param1:String = (loaderInfo.parameters.param1 == undefined)
      ? "null" : loaderInfo.parameters.param1;
var param2:String = (loaderInfo.parameters.param2 == undefined)
      ? "null" : loaderInfo.parameters.param2;

/* 넘겨줄 파라메터 셋 만듬 */
var map:IMap = new HashMap(); 
map.put("param1", param1); 
map.put("param2", param2); 

/* 서버에 데이터 요청 */
var xr:HTTPRequest = new HTTPRequest("http://www.htdocs.kr/fmp/flv.php", URLRequestMethod.GET, map);
xr.addEventListener(Event.COMPLETE, completeHandler);
xr.addEventListener(Event.OPEN, openHandler);
xr.addEventListener(ProgressEvent.PROGRESS, progressHandler);
xr.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
xr.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
xr.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

xr.load();

/*
 * 이벤트 핸들러
 */
 
function completeHandler(event:Event):void {
 var loader:URLLoader = URLLoader(event.target);

 /* 텍스트 출력 */
 txResult.text = loader.data;
/*
 var l:Label = new Label();
 l.text = loader.data;
 l.autoSize = TextFieldAutoSize.CENTER;
 l.x = 30;
 l.y = 30;
 addChild(l);
*/
}


function openHandler(event:Event):void {
 txLog.text = txLog.text + "openHandler: " + event;
}

function progressHandler(event:ProgressEvent):void {
 txLog.text = txLog.text + "progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal;
}

function securityErrorHandler(event:SecurityErrorEvent):void {
 txLog.text = txLog.text + "securityErrorHandler: " + event;
}

function httpStatusHandler(event:HTTPStatusEvent):void {
 txLog.text = txLog.text + "httpStatusHandler: " + event;
}

function ioErrorHandler(event:IOErrorEvent):void {
 txLog.text = txLog.text + "ioErrorHandler: " + event;
}

stop();
[code]

HTTPRequest.as :
[code]
/**
 * Copyright (c) 2008 Young Joo Lee <ifalcon@naver.com>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package kr.htdocs.net {
 import flash.net.URLLoader;
 import flash.net.URLRequest;
 import flash.net.URLRequestMethod;
 import flash.net.URLVariables;
 
 import com.ericfeminella.collections.IMap;

 /**
  * = URLRequest =
  * URLRequest 클래스는 하나의 HTTP 요청에 포함된 모든 정보를 캡처한다.
  * FileReference 클래스의 upload() 및 download() 메서드뿐 아니라 URLStream의 load() 메서드,
  * URL 다운로드를 시작하기 위한 URLLoader, Loader 및 기타 로드 작업에 URLRequest 객체가 전달된다.
  *
  * = URLLoader =
  * URLLoader 클래스는 URL에서 텍스트, 이진 데이터 또는 URL 인코딩된 변수 형식으로 데이터를 다운로드한다.
  * 이것은 텍스트 파일, XML 또는 동적 데이터 기반 응용 프로그램에서 사용되는 기타 정보를 다운로드할 때 유용하다.
  *
  * URLLoader 객체는 모든 데이터를 URL에서 다운로드한 다음 ActionScript에서 사용할 수 있게 한다.
  * 다운로드 진행 상황에 대한 알림을 전송하며, 이 진행 상황은 전달된 이벤트뿐 아니라
  * bytesLoaded 및 bytesTotal 속성을 통해서도 모니터링할 수 있다.
  */
 public class HTTPRequest {
  private var _uri:String;
  private var _method:String;
  private var _args:IMap;
 
  private var _loader:URLLoader;
 
  /**
   * 생성자
   */
  public function HTTPRequest(uri:String, method:String, args:IMap = null) {
   this._uri = uri;
   this._method = method;
   this._args = args;
   
   this._loader = new URLLoader();
  }
 
  /**
   * 이벤트를 등록한다.
   */
  public function addEventListener(type:String, listener:Function):void {
   _loader.addEventListener(type, listener);
  }
 
  /**
   * 지정된 uri로 데이터를 요청한다.
   */
  public function load():void {
   var request:URLRequest = new URLRequest(_uri);
   request.method = (_method == null) ? URLRequestMethod.GET : _method;
   
   /* 전달될 파라메터를 세팅한다. */
   if (_args != null) {
    var nameValuePairs:URLVariables = new URLVariables();
    var keys:Array = _args.getKeys();
    for each(var key:String in keys) {
     nameValuePairs[key] = _args.getValue(key);
    }
    request.data = nameValuePairs;
   }
   
   /* 요청 */
   try {
    _loader.load(request);
   } catch (error:Error) {
    trace("Unable to load requested document.");
   }
  }
 }
}
[/code]

다운로드: flashmovieplayer.zip

데모:


이올린에 북마크하기(0) 이올린에 추천하기(0)

happyness WEB/Flash ,

2008/03/25 17:12 2008/03/25 17:12
[로그인][오픈아이디란?]

Flash에서 Hashmap 구현

2008/03/24 16:55
Flash를 공부하다 보니 Java에서 처럼 Hashtable이나 Hashmap이 있으면 편할 것 같아, 이곳 저곳을 찾아보니 다행이도 미리 만들어 놓은 사람이 있다.

다운로드 : collections.zip

사용법:
var map:IMap = new HashMap();
map.put("a", "value A");
map.put("b", "value B");
map.put("c", "value C");
map.put("x", "value X");
map.put("y", "value Y");
map.put("z", "value Z");

trace( map.getKeys() );
trace( map.getValues() );
trace( map.size() );
이올린에 북마크하기(0) 이올린에 추천하기(0)

happyness WEB/Flash ,

2008/03/24 16:55 2008/03/24 16:55
[로그인][오픈아이디란?]

플래시에 파라메터 넘기기

2008/03/22 16:36


플래시에 값을 넘겨 주어 그에 따른 플래시 동작을 변화시킬 수 있다.

억세스 방법

<embed pluginspage='http://www.macromedia.com/go/getflashplayer'
src='/attachment/1278347336.swf?param1=1234&amp;param2=5678'
width='320' height='240' type='application/x-shockwave-flash'>
</embed>


소스:

import flash.text.TextFieldAutoSize;
import fl.controls.Label;

/* 파라메터를 받음 */
var param1:String = (loaderInfo.parameters.param1 == undefined)
? "null" : loaderInfo.parameters.param1;
var param2:String = (loaderInfo.parameters.param2 == undefined)
? "null" : loaderInfo.parameters.param2;


/* 텍스트 출력 */
var l:Label = new Label();
l.text = "param1=" + param1 + ", param2=" + param2;
l.autoSize = TextFieldAutoSize.CENTER;
l.x = 100;
l.y = 100;
addChild(l);

stop();


예:


이올린에 북마크하기(0) 이올린에 추천하기(0)

happyness WEB/Flash , ,

2008/03/22 16:36 2008/03/22 16:36
[로그인][오픈아이디란?]