Показать сообщение отдельно
Старый 21.02.2010, 18:03
Elser вне форума Посмотреть профиль Отправить личное сообщение для Elser Найти все сообщения от Elser
  № 1  
Ответить с цитированием
Elser
 
Аватар для Elser

Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
По умолчанию Много языков в одном текстовом поле

На Stage лежит 2 TextField:
слева - internalText - поле, в которое текст вставлен непосредственно в IDE // Причем ! символы в этом поле НЕ внедрены ! (и оно не юзает внедрённый шрифт)
справа - testText - поле, в которое текст грузится из базы // А сюда внедрены все глифы (вариант без внедрения как и с использованием встроенного шрифта дает тотже результат)
вот так это смотрится

кодировка в базе - utf8_general_ci

db.php
Код:
<?php 
mysql_connect('localhost', 'login', '********') or die("error");
mysql_select_db('diamond') or die("select error");
mysql_query("SET NAMES utf8");
?>
tst.php - просто проверка вывода
Код:
<?php
include 'db.php';
$req = mysql_query("SELECT * FROM languages");
while($languages = mysql_fetch_assoc($req)){
	echo $languages["localname"]."<br/>";
}
?>
amfphp сервис
Код:
class ContentService {
	
	public function ContentService() {
		include 'db.php';
	}

	public function getLanguages(){
		$req = mysql_query("SELECT * FROM languages");
		$res = array();
		while($languages = mysql_fetch_assoc($req)){
			 $res[] = $languages;
		}
		return $res;
	}
}
ну и родимый ас (не пинайтесь что код в кадре - это просто тест - оригинал это PureMVC Proxy)
Код AS3:
import flash.net.NetConnection;
import flash.net.Responder;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.NetStatusEvent;
import flash.events.IOErrorEvent;
import flash.external.ExternalInterface;
import fl.controls.UIScrollBar;
 
var connectionTimeout:uint = 7000;
var serviceGateWay:String = 'ну тут типа понятно - url к gateway.php';
var timer:Timer;
var netConnection:NetConnection;
var testSB:UIScrollBar;
 
netConnection = new NetConnection();
var responder = new Responder(handler,faultHandler);
timer = new Timer(connectionTimeout,1);
timer.addEventListener(TimerEvent.TIMER, errorHandler );
netConnection.connect( serviceGateWay );
netConnection.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
netConnection.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
netConnection.call("ContentService.getLanguages",responder);
timer.start();
 
function handler( sres:* ):void {
	timer.stop();
	timer.removeEventListener( TimerEvent.TIMER, errorHandler );
	for(var i in sres){
		testText.appendText(sres[i].localname + "\n");
	}
	testSB.update(); // testText скроллбарина
}
 
function statusHandler( event:NetStatusEvent ):void {
	switch (event.info.code) {
		case 'NetConnection.Connect.Closed' :
			trace('Info: Connection successful closed');
			break;
		case 'NetConnection.Connect.Success' :
			trace('Info: Successful connected to the service');
			break;
		case 'NetConnection.Connect.Rejected' :
			trace(': Your do not have permission to access this service');
			break;
		case 'NetConnection.Call.Failed' :
			trace(': Failed to connect to the service ');
			break;
		case 'NetConnection.Call.Prohibited' :
			trace(': The service access deny or do not trusted domain calling');
			break;
	}
	timer.stop();
	timer.removeEventListener( TimerEvent.TIMER, errorHandler );
}
 
function faultHandler( serviceError:* ):void {
	timer.stop();
	timer.removeEventListener( TimerEvent.TIMER, errorHandler );
	netConnection.close();
	trace(': Server connection fault!');
}
 
function errorHandler( timerError:* ):void {
	netConnection.close();
	trace(': Server connection error!');
}
 
function ioErrorHandler( error:* ):void {
	netConnection.close();
	trace(': Server connection input/output error!');
}
подскажите пожалуйста, как сделать так, чтобы во втором поле было все также пушисто как и в первом?

Добавлено через 27 часов 40 минут
УРАААА!!! )) Заработало ))
пофиксил так:
лезем в amfphp/gateway.php
Код:
//находим    
$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
//правим на 
$gateway->setCharsetHandler("utf8_decode", "UTF-8", "UTF-8");
и получаем все языки в одном поле )))


Последний раз редактировалось Elser; 22.02.2010 в 21:45.