Спасибо за ответ.
Цитата:
Сообщение от wvxvw
Сказать честно - темы связанные с декомпиляцией и потенциально вредящие другим людям тут не приветствуются. Правила многих игр предусматривают санкции за автоматизацию игры и рассценивают это как нарушение соглашения пользователя.
|
Ну я надеюсь, что вы не будете рассматривать мою задачу как деструктивную. Собственно
одного поста с вашего форума достаточно, чтобы полностью разобраться в логике приложения, толком не знакомясь с технологией

.
Цитата:
Сообщение от wvxvw
Конечно, не исключено, что вы это делаете в целях самообразования, и что разработчики игры вовсе не против, но во избежание неприятных ситуаций, я бы все таки попросил, чтобы вы по крайней мере описали о какой игре идет речь, и что именно вы пытаетесь сделать.
|
Разработчики не против- я в их игры не играю

. Мне нужно изменить "дизайн" сайта, сделав нечто вроде автозаполнения формы. Конкретный пример я приведу только завтра, а то сейчас у нас уже 2 часа ночи- пора спать.
Добавлено через 19 часов 30 минут
Итак, максимально упрощённая форма ввода будет выглядеть вот так:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.events.MouseEvent;
import flash.events.TextEvent;
import flash.events.Event;
import flash.ui.Mouse;
import flash.ui.MouseCursor;
[SWF(width="300", height="200")]
public class Window extends MovieClip
{
protected var edit:TextField;
protected var button:TextField;
public function Window()
{
var w:uint = root.stage.stageWidth, h:uint = stage.stageHeight;
edit = new TextField();
edit.x = 75;
edit.y = 70;
edit.width = 150;
edit.height = 20;
edit.background = true;
edit.backgroundColor = 0xFFFF00;
edit.type = TextFieldType.INPUT;
addChild(edit);
button = new TextField();
button.x = 75;
button.y = 110;
button.width = 150;
button.height = 20;
button.background = true;
button.backgroundColor = 0xFF0000;
button.htmlText = "<p align='center'>Ввод</p>";
button.addEventListener(MouseEvent.CLICK, Click);
button.addEventListener(MouseEvent.MOUSE_OVER, Over);
addChild(button);
stage.focus = edit;
}
private function Click(e:MouseEvent):void
{
//отправка данных
edit.text = "";
stage.focus = edit;
return;
}
private function Over(e:MouseEvent):void
{
Mouse.cursor = MouseCursor.ARROW;
return;
}
}
}
А нужно добавить возможность автозаполнения, примерно так:

Код AS3:
package
{
//тут всё как прежде
public class Window extends MovieClip
{
protected var edit:TextField;
protected var button:TextField;
public function Window()
{
//тут прежний код
MyFunc(); // а эта функция в моём загрузчике и выполняется при событии "allComplete"
}
//дальше опять прежний код
//а все переменные ниже, должны находится в моём загрузчике
private var arr:Vector.<String>;
protected function GetElem(arr:Vector.<String>, str:String):String
{ //разумеется это просто заглушка, каждый раз перебирать весь массив я не стану :)
for(var i:int=0;i<arr.length;i++)
{
if(arr[i].substr(0, str.length)==str)
{
return arr[i];
}
}
return "";
}
public function MyFunc():void
{
arr = new Vector.<String>();
edit.addEventListener(Event.CHANGE, ChangeText); //вот тут вся проблема- edit не найти.
button.addEventListener(MouseEvent.CLICK, PreClick, false, 1); // ну и button, разумеется, тоже.
}
private function ChangeText(e:Event):void
{
var t:String = edit.text;
var len:int = t.length;
var str:String = GetElem(arr, t);
if(str!="")
{
edit.text = str;
edit.setSelection(len, edit.text.length);
}
}
private function PreClick(e:MouseEvent):void
{
if((edit.text!="")&&(GetElem(arr, edit.text)=="")) // опять же- edit'а нету...
{
arr.push(edit.text);
}
}
}
}