Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Нестандартные функции и приемы на AS и AS2
Flash Zone Forum > Macromedia Flash > ActionScript
Страницы: 1, 2
tiHo
более-менее ровный AS круг.


В данном коде рисуется очень короткая линия(0.2 pix) закругленные концы которой создают относительно ровный круг.


_root.createEmptyMovieClip("clip", 1)
clip.lineStyle(100,0x00ff00,100)
clip.moveTo(225,200)
clip.lineTo(225.2,200)



Сейчас и далее все написанные мною функции и приемы писать в кадр(Action-frame).

tiHo
Поиск FPS.

Код
var frames:Number = 1;
onEnterFrame = function ()
{
    frames++;
    var time:Number = getTimer() / 1000;
    var fps:Number = frames / time;
    trace(Math.ceil(fps));
};
tiHo
Ну вот что-то очень интересное.


Во flash можно зафиксировать нажатия на 5 кнопок мыши(а не тока на левую).
ниже приводится функция:



_root.onEnterFrame = function () {
if (ASnative(800, 2)(1)) {
trace("левая");
}
if (ASnative(800, 2)(2)) {
trace("правая");
}
if (ASnative(800, 2)(3)) {
trace("колесо");
}
if (ASnative(800, 2)(4)) {
trace("боковая-1");
}
if (ASnative(800, 2)(5)) {
trace("боковая-2");
}
};



Попробуйте понажимать на кнопки. у каво на мышке если боковые кнопки они тоже будут работать, а у каво нету то радуйтесь таму што есть smile.gif

также определяется нажатие на колесо мыши.
Данная недокументированная функция работает на flash 5, 6, 7.
MustLive
Цитата(tiHo @ 13.04.2006 - 20:42)
также определяется нажатие на колесо мыши.
Данная недокументированная функция работает на flash 5, 6, 7.

Круто!

tiHo просто молодец wink.gif

Очень полезная фича. Но не стоит забывать, что флеш просто так нажать тебе на правую не даст - выскочит меню. Если его не отрубить внешними софтинами - тогда и правой кнопки не будет.

Или с помощью if (ASnative(800, 2)(2)) {} я могу перехватить нажатие, и например избавиться от меню? Было бы не плохо (очень даже интересное применение).
tiHo
да, так можно. я избавлялся от меню с помощью resHack, а функция всеравно работала.
MustLive
Цитата(MustLive @ 13.04.2006 - 21:04)
Или с помощью if (ASnative(800, 2)(2)) {} я могу перехватить нажатие, и например избавиться от меню? Было бы не плохо (очень даже интересное применение).

К сожалению от меню не избавиться.

Цитата
if (ASnative(800, 2)(3)) {
trace("колесо");
}

У меня в флеше 6/МХ колесо определяется как "боковая-1". 4я кнопка (на спине мыши, не боковая) тоже также определяется.

Кстати, неплохо было бы ещё скролинг (колеса) миши определять.

P.S.

Флеш 8 точно также реагирует на эти функции, как и 6/мх. Тоже колесо не видит - помечает его "боковая-1".
tiHo
да, у меня тоже чето несовсем гладко, но раньше все ок было.
Попробуй поменяй цифры в самом конце.
MustLive
Цитата(tiHo @ 13.04.2006 - 21:10)
да, так можно. я избавлялся от меню с помощью resHack, а функция всеравно работала.

tiHo

Это хорошо. И это открывает интересные возможности применения (можно использовать правую кнопку, которая до этого оставалась неактивной) - в той же игровой сфере.

Только насчёт РесХакера. Ты убирал у экзешников меню, а как быть с swf-шками? Ведь он выругается, что нон 32 бит экзекютейбл и иди гуляй.

Ведь в случае swf играть их будет плеер, где меню то есть (не вырезано). А вот этот случай представляет особый интерес - онлайновое применение (онлайн игры те же). Но создание своих (стационарных) программ с использованием флеша, без меню и с правой кнопкой, тоже довольно интересное занятие.
tiHo
Цитата
а как быть с swf-шками

никак:(
tiHo
ты мне лучше скажи как в етот форум мона файл вставить?
MustLive
Цитата(tiHo @ 13.04.2006 - 21:24)
ты мне лучше скажи как в етот форум мона файл вставить?

Для этого нужно:

1) иметь права;
2) раздел должен быть настроен соответствующим образом - давать право на загрузку файлов.

У меня например такие права есть cool.gif. Как дослужишься до модератора, то и у тебя такие права будут wink.gif

А сам процесс сводится к следующему: при создании/редактировании сообщения ты загрузаешь файл (прикрепляешь его к посту) через поле "Загрузка файла".
tiHo
понял.
MustLive
tiHo!

Кстати, в флеш-игрушке heli attack 3 задействован скролинг мыши (для переключения оружия). Впервые во флеше такое вижу, и сделано очень удачно и удобно.

Нужно узнать как это сделать wink.gif.

Чтобы и самому можно было использовать эту возможность. Очень полезная вещь. В добавок к использованию всех кнопок мыши.
MustLive
Как я выяснил, в AS 2 ввели поддержку onMouseWheel (поддерживается в флеш плеере 7 и 8, т.е. в плеере/редакторе с поддержкой AS 2).

Вот код для тестирования скролинга:
Код
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta) {
    if (delta>0) {
    trace("Скролинг вверх");
    }
    else {
    trace("Скролинг вниз");
    }
}
Mouse.addListener(mouseListener);

Можно его добавить к вышеприведённому коду тестирования кнопок wink.gif.
tiHo
ага, работает, но к сожелению ета функция описанна в стандартном хелпе:

Mouse.onMouseWheel
Availability
Flash Player 7 (Windows only).

Usage
someListener.onMouseWheel = function ( [ delta , scrollTarget ]) {
// your statements here
}

Parameters
delta An optional number indicating how many lines should be scrolled for each notch the user rolls the mouse wheel. A positive delta value indicates an upward scroll; a negative value indicates a downward scroll. Typical values are from 1 to 3, whereas faster scrolling may produce larger values.

If you don't want to specify a value for delta but want to specify a value for scrollTarget, pass null for delta.

scrollTarget The topmost movie clip instance under the mouse when the mouse wheel was scrolled.

Returns
Nothing.

Description
Listener; notified when the user rolls the mouse wheel. To use the onMouseWheel listener, you must create a listener object. You can then define a function for onMouseWheel and use addListener() to register the listener with the Mouse object.

Note: Mouse wheel event listeners are available only on Windows versions of Flash Player.

Example
The following example shows how to create a listener object that responds to mouse wheel events. In this example, the x coordinate of a movie clip object named clip_mc (not shown) is changed each time the user rolls the mouse wheel.

mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
clip_mc._x += delta;
}
Mouse.addListener(mouseListener);



а попробуйка найди там ASnative smile.gif
tiHo
Локальная связь на AS.


2 swf файла могут общаться друг с другом на одном хосте(localhost).
Вообщето этот Class описывается в стандартной ИНФЕ по экшнСкрипту, но всё же не все обращали на него внимание.
вот приводится ниже скрипт с описанием(я постарался попонятнее) самой функции:
(рассматривается пример чтобы 1 swf посылал а другой принимал команды. и только)
следующий скрипт писать на swf который получает команды:



получатель = new LocalConnection();
получатель.пользовательская_функция = function() {
//пользовательские действия
}
получатель.connect( "название_соединения" );



следующий скрипт писать на swf который отправляет команду к получателю:


отправитель = new LocalConnection();
отправитель.send("название_соединения", "пользовательская_функция");


Значит так: все до безобразия просто smile.gif
создается объект который следит за полученной инфой.
в название_соединения писать любое слово, только чтобы оно было одинаковое в обоих swf, а иначе они просто не найдут друг друга.
tiHo
Динамическое создание дерева
На дерево также действует сила ветра.
Скрипт:

Код

function counter():Number
{
    if (branchCounter == undefined)
    {
        branchCounter = 0;
    }
    return (branchCounter++);
}
function grow():Void
{
    this.lineStyle(trunkThickness, 0x0, 100);
    this.moveTo(0, 0);
    this.lineTo(0, trunkLength);
    updateAfterEvent();
    if (this._name != 'trunk')
    {
        this._rotation = (Math.random() * angle) - angle / 2;
        this._xscale *= branchSize;
        this._yscale *= branchSize;
    }
    var seed = Math.ceil(Math.random() * branch);
    for (var i = 0; i < seed; ++i)
    {
        if (counter() < 3000)
        {
            var segment = this.createEmptyMovieClip("segment" + i, i);
            segment.onEnterFrame = grow;
            segment._y += trunkLength;
        }
    }
    this.onEnterFrame = sway;
}
function sway():Void
{
    wind += windEffect;
    if (wind > windStrength)
    {
        wind = -wind;
    }
    this._rotation += wind;
    updateAfterEvent();
}
this.createEmptyMovieClip("trunk", 0);
trunk._x = 200;
trunk._y = 400;
trunk.onEnterFrame = grow;
var angle:Number = 100;
var branch:Number = 5;
var trunkThickness:Number = 8;
var trunkLength:Number = -100;
var branchSize:Number = 0.7;
var windEffect:Number = 0.05;
var windStrength:Number = 1;
var wind:Number = 0;


Условия:
AS2(mx2004)
tiHo
Поиск пути
Самый простой.
Скрипт:

Код
onMouseDown = function ()
{
    var x:Number = _xmouse;
    var y:Number = _ymouse;
};
onEnterFrame = function ()
{
    if (clip._x < x)
    {
        clip._x++;
    }
    if (clip._x > x)
    {
        clip._x--;
    }
    if (clip._y < y)
    {
        clip._y++;
    }
    if (clip._y > y)
    {
        clip._y--;
    }
    var xd:Number = x - clip._x;
    var yd:Number = y - clip._y;
    var distance:Number = Math.sqrt(xd * xd + yd * yd);
    vivod.text = Math.ceil(distance);
    vivod._x = clip._x + 10;
    vivod._y = clip._y - 10;
};


Условия:
AS2(mx2004)
клип clip
текстовое поле vivod
tiHo
Скрипт анимация
Следующая скрипт анимация похожа как мне кажится smile.gif на:
ламара из HL2 каторый танцует ТЫЦ-ТЫЦ
на чьето бельё
на грудь(женскую), тока почамуто одна smile.gif

Скрипт:

Код
_root.createEmptyMovieClip("mc_shape", 10);
var centerX:Number = 150;
var centerY:Number = 150;
var pt:Object = {};
pt.x = centerX;
pt.y = centerY;
var radius:Number = 50;
var speed:Number = 50;
var theta:Number = 0;
mc_shape.onEnterFrame = function()
{
    _root.move();
    with (this)
    {
        clear();
        lineStyle(2, 0xFF9900, 100);
        moveTo(100, 100);
        curveTo(pt.x, pt.y, 200, 100);
        curveTo(pt.x, pt.y, 200, 200);
        curveTo(pt.x, pt.y, 100, 200);
        curveTo(pt.x, pt.y, 100, 100);
    }
};
function move():Void
{
    theta += speed;
    pt.x = radius * Math.cos(theta);
    pt.y = radius * Math.sin(theta);
    pt.x += centerX;
    pt.y += centerY;
}


Условия:
AS2(mx2004)
tiHo
Шлейф мыши

Скрипт:

Код
var c:Number = 0;
onMouseMove = function ()
{
    clip._x = _xmouse;
    clip._y = _ymouse;
    updateAfterEvent();
    c++;
    clip.duplicateMovieClip("clip" + c, c);
    if (c >= 100)
    {
        c = 0;
    }
};


Условия:
AS2(mx2004)
клип clip
MustLive
Цитата(tiHo @ 12.04.2006 - 17:55)
хм.. с чего бы начать?? Начну с приемчика который рисует более-менее ровный AS круг:

Интересно wink.gif.

Но это, так, для начала.

Цитата
Поиск FPS.

А вот это поинтереснее. Довольно простой и изящный алгоритм.

Счётчик FPS можно использовать для тестирования производительности компьютера (если сделать мощную флешку, которая будет серьёзно нагружать ПК и флеш плеер).

Например, для тестирования производительности той или иной версии флеш плеера (как на компьютере определённой конфигурации - т.е. тест версий плееров, так и любой концигурации - тест ПК) можно использовать мои тесты:

Тест производительности: http://mlbpg.narod.ru/bp-flash/bp-flash25.htm
Тест производительности (extended): http://mlbpg.narod.ru/bp-flash/bp-flash25-2.htm
Тест производительности (final): http://mlbpg.narod.ru/bp-flash/bp-flash25-3.htm
MustLive
Цитата(tiHo @ 16.04.2006 - 15:51)
Шлейф мыши

Вот тебе прикольный шлейф smile.gif

http://mlfun.org.ua/flash/2/bunny.shtml

Цитата
Скрипт:

А так ничего. Только суть шлейфа упирается в "сам шлейф", его физическое представление (визуальные эффекты) - в мувиклип clip. Поэтому стоило в коде программно создать мощный (эффектный) мувиклип, который бы использовался в примере со шлейфом. Например сделать изящный хвост шлейфа (как хвост кометы), тогда бы шлейф выглядил более привлекательным wink.gif (чем просто статический объект, который "по умолчанию" нарисует юзер для данного примера).
MustLive
Цитата
Скрипт анимация

Забавная анимация.
Цитата
Поиск пути

Тоже полезная вещь. Как ты написал "Самый простой.". Приходилось иметь дело с подобным алгоритмом (в нескольких флеш-играх).
Цитата
Динамическое создание дерева

Но вот дерево - это бесподобный скрипт smile.gif

Живое дерево (качающееся по ветру) да ещё и программное.

Только сильно ресурсоёмкий скрипт. У меня на AMD Sempron 3100+/1024 МБ/вполне реальная платформа/ скрипт работал в флеш 8 плеере крайне медленно. Если использовать счётчик фпс (лимит в 100 фпс), то по началу он ещё держался в верхнем диапазоне (пик 79 к/с), но как только дерево разрослось, частота упала до 8 фпс (полное дерево колыхалось при стабильно 8 фпс).

Так что пока, подобную анимацию лучше делать пререндерингом/вручную, а не программно. Т.к. алгоритм медленный, как и сам флеш.
MustLive
Цитата
ага, работает, но к сожелению ета функция описанна в стандартном хелпе:

Так как я юзаю флеш 6/мх, то в его хелпе этого нет. Потом я уже нашёл в хелпе 8го флеша, который я у меня тоже есть, но я его мало использую (и в его хелп практически ни разу не заглянул).

Инфу я нашёл в инете. Даже в Макромедийных ливдоках для флеш МХ 2004 было упоминание, что Mouse.onMouseWheel паботает во флеш 6 плеере, но это не подтвердилось. Зато в 7м/8м плеере всё работает. Поэтому, как в нете нашёл onMouseWheel, дополнительно глянул ещё в 8м хелпе (дабы удостовериться).

Цитата
а попробуйка найди там ASnative

Как onMouseWheel я искал не в хелпе, так и ASnative можно - в поисковиках.

И информации можно найти немало по ASnative wink.gif.

В частности рекомендую посмотреть:
Полный спискок ASNative функций
Undocumente - ASNATIVE(800,N) Input Device Codes - где рассказывается о кодах для клавы и мыши.

И в частности подверждается моё замечание, что (3) - это не колесо (т.к. не отвечает), а (4) как раз колесо (средняя кнопка), а не боковая.

Т.е. некорректны данные утверждения:
Цитата
if (ASnative(800, 2)(3)) {
trace("колесо");
}
if (ASnative(800, 2)(4)) {
trace("боковая-1");
}

Потому что:
Цитата
FORMAT = ASNative(800,2)(KEY)

NAME KEY
-------------------------------------
LBUTTON 1 //Left Mouse button
RBUTTON 2 //Left Mouse button
CANCEL 3
MBUTTON 4 //Middle mouse button

Интересное чтиво в общем smile.gif
tiHo
мда.. интересно.. интересно smile.gif)
MustLive
tiHo

Если в результате исследований всех возможностей ASNative, найдёшь что-то интересное (нестандартное и полезное применение ASNative), помимо кнопок мыши, то обязательно поделись на форуме wink.gif.

Например, меня заинтерисовали следующие коды:
Код
ASnative(302, 0) - [Cookie] getCookie - inner function
ASnative(302, 1) - [Cookie] setCookie

В 6/мх флеше такого небыло (в хелпе ни слова) smile.gif

Ну м многое чего другого интересного: Camera, Microphone, SharedObject
Код
ASnative(2102, 0) - [Camera.prototype] setMode
ASnative(2104, 0) - [Microphone.prototype] setSilenceLevel
ASnative(2106, 0) - [SharedObject.prototype] connect
tiHo
По поводу set и get Cookie.
я про это вообщем знал, но не знал где бы ето можно пременить.
работает ето разумеется и без ASnative.
вот вобщем узнал что во влешке есть такая тема как:

Код
Cookie.setCookie()
Cookie.getCookie()


Вот что можно попробывать:

пишем:

Код
trace(Cookie.getCookie())


Если у Вас с флешкой все нормально, то должно выпасть в трайсе сообщение об ошибке открытия файла:
(у меня это выглядит так):


CODE
Error opening URL "file:///C|/Documents%20and%20Settings/tiHo/Local%20Settings/Application%20Data/Macromedia/Flash%20MX%202004/en/Configuration/Mmfdata/mmfdata%2D6a49751e.xml"


Вот, дальше...
я создал етот файл(без поцентной кодировки он называется так: mmfdata-6a49751e.xml):

и во флешке написал :

Код
Cookie.setCookie("мугага-ржунимагу")


после чего протестировал swf, и полез смареть случилось ли чтонибудь с тем файлом.
открыл его и увидел в нем свою строчку: "мугага-ржунимагу".
Вот так. я незнаю, но думаю что камунибудь ето понадобится.
MustLive
Цитата
По поводу set и get Cookie.

У меня по другому ругался:
Код
Error opening URL "file:///C|/Program%20Files/Macromedia/Flash%208/en/Configuration/Mmfdata/mmfdata4ffaf1df.xml"


С записью то всё хорошо:
Код
Cookie.setCookie("test cookie");

В файле mmfdatacd019cf.xml появляется строка: "test cookie". Но ведь нужно её ещё прочитать.

Как ты мог заметить, tiHo, просто трейсом так не выведешь кукис (с помощью trace(Cookie.getCookie()) - выводит пустой Output.

Как я исследовал этот кукис, выяснилось, что возвращаемое значение объект, и в данном случае, XML. Поэтому нужно обработать кукис, чтобы добраться до его содержимого.

Итоговый код для работы с кукисом:
Код
Cookie.setCookie("test cookie");
mycookie = Cookie.getCookie();
mycookie.onLoad = function () {
    trace (this);
}

Цитата
Вот так. я незнаю, но думаю что камунибудь ето понадобится.

Это не документированная функция. В флеш 8 тоже нет ни слова о Cookie.

И если просто записывать (и не считывать и обрабатывать), то толку не будет никакого. Но я привёл уже код обработки полученного кукиса, так что полезность данной фичи сильно возрастает wink.gif

P.S.

Код работает и в флеш 6/мх. Так что совместимость кукисов есть начиная с 6 и до 8 флеша. Только путь другой для хранения кукисов (8й в Program Files, 6й в Documents and Settings), в конце пути папка Mmfdata и файл xml (в обоих случаях имена различаются). Так что в случае разных версий флеш-плеера, кукисы будут в различных места, что означает ограниченную совместимость, как и в случае флеш-кукисов SharedObject.
MustLive
Дискуссия о Shared Object и Cookie вынесена в отдельную тему:
/forum/index.php?showtopic=506
Jox
Я модного не знаю, пишу, что может пригодится:

Код
//Запрет основного меню
fscommand("trapallkeys","true");
fscommand("showmenu","false");

//Кнопка: on(release) { gotoAndPlay (  );} \\переход к указанному кадру

//Курсор: onClipEvent(mouseMove) {
    _root.myclip._x = _root._xmouse;
    _root.myclip._y = _root._ymouse;
}
//другой вариант
onClipEvent(mouseMove){
    Mouse.hide();
    _x=_parent._xmouse;
    _y=_parent._ymouse;
    updateAfterEvent();
}
on (press) {
    _xscale=150;
    _yscale=150;
}
on (release) {
    _xscale=100;
    _yscale=100;
}
//На большой экран: on (release) {
    fscommand("fullscreen", true);
}

//На маленький экран: on (release) {
    fscommand("fullscreen", false);
}
//Выход из флеш:
on (release) {
fscommand("quit", true);
}
tiHo
Цитата
//Курсор: onClipEvent(mouseMove) {
_root.myclip._x = _root._xmouse;
_root.myclip._y = _root._ymouse;
}


я думаю ето работать небудет:) попробуй сам догодаться почаму.


Цитата
//Кнопка: on(release) { gotoAndPlay ( );} \\переход к указанному кадру

и ето тоже.(по 2-м причинам).

Все, исправляй.))
Jox
tiHo У меня всё работат. Пропуски я оставил для пользователей, чтобы они писали сами свои парамметры.
Ты знаешь какие-нибудь финты ?:
1) иконка
2) Собственная надпись сверху
3) Убрать правую кнопку мыши....
MustLive
Цитата(Jox @ 9.06.2006 - 11:51) *
Ты знаешь какие-нибудь финты ?:
1) иконка
3) Убрать правую кнопку мыши....

По поводу иконки и правой кнопки мыши я уже писал ранее:
/forum/index.php?showtopic=393

С помощью таких программ как ResHacker (или другие редакторы ресурсов) и спец. програм для флешеров (SwiffCANVAS, Джуглор), можно с флешками творить мощные финты. В данном случае речь идёт об ехе-шниках флеш-проектов (в чистой флешке, ни к иконке, ни к меню, добраться не получится).
tiHo
Jox. Я тебя на 100% уверяю, что 3 функции из тех что ты написал точно работать небудут laugh.gif biggrin.gif

Потому что ты инициализацию функции написал в комментарии. Обрати на ето внимание.
tiHo
и вообще я считаю что данную дескуссию можно было бы вести в рубрике Нестандартные функции и приемы на AS она уже готова.
MustLive
Цитата(tiHo @ 9.06.2006 - 14:55) *
и вообще я считаю что данную дескуссию можно было бы вести в рубрике Нестандартные функции и приемы на AS она уже готова.

Так и есть Саша wink.gif. Я сам вспомнил именно об этой теме, когда Jox заговорил о финтах во флеш. О чём и собирался заметить. Только здесь есть небольшое отличие (если судить по первому посту Joxа) - у тебя речь идёт о нестандартных, а у него о стандартных функциях и приёмах во флеш. А так - и там и там финты и приёмы.

P.S.

В связи с общей тематикой обеих тем, я объеденил их в одну (в "Нестандартные функции и приемы на AS2").
Jox
Цитата(MustLive @ 14.04.2006 - 01:56) *

tiHo!

Кстати, в флеш-игрушке heli attack 3 задействован скролинг мыши (для переключения оружия). Впервые во флеше такое вижу, и сделано очень удачно и удобно.

Нужно узнать как это сделать wink.gif.

Чтобы и самому можно было использовать эту возможность. Очень полезная вещь. В добавок к использованию всех кнопок мыши.


Я считаю эту игру самой лучшей во флеш по продуманности, рисовке и вообще, как - никак miniclip делал!
Я бы о ней поговорил....Но это уже совсем другая история
Jox
Цитата(tiHo @ 9.06.2006 - 14:39) *

Jox. Я тебя на 100% уверяю, что 3 функции из тех что ты написал точно работать небудут laugh.gif biggrin.gif

Потому что ты инициализацию функции написал в комментарии. Обрати на ето внимание.

Если коммент стереть - всё будет чики-пуки tongue.gif

К счастью, я эту тему нашёл smile.gif
tiHo
Вполне интересно.


С помощью HEX-explorer открыл exe-файл игрушки сделанной на Flash8.
В прикрепленом к сообщению аттачу весь список функций инициализации. Есть на что посматреть. Также там имеется список тегов html которые могут использоваться во flash. Вобщем смотрите сами.


[attachmentid=7]
MustLive
tiHo

Можешь ещё пофильтровать и разбить весь этот список на группы (где что, чтобы не всё в кучу). Чтобы выделить разные направления в разные группы (теги html, эффекты, фильтры и др.), чтобы было наглядней.

Но в этом случае придётся поморочиться smile.gif.
tiHo
Цитата(MustLive @ 9.07.2006 - 00:42) *

tiHo

Можешь ещё пофильтровать и разбить весь этот список на группы (где что, чтобы не всё в кучу). Чтобы выделить разные направления в разные группы (теги html, эффекты, фильтры и др.), чтобы было наглядней.

Но в этом случае придётся поморочиться smile.gif.


ноуж нет laugh.gif каму что надо тот пусть то и смотрит, а то тут мне работы на неделю biggrin.gif
tiHo
Замена символов в строке.


CODE

replace = function (str:String, eto:String, repl:String):String
{
var _1:String = str.substring(0, str.indexOf(eto));
var _2:String = str.substring(str.indexOf(eto) + 1);
var final:String = _1 + repl + _2;
return final;
};
// trace(replace(СТРОКА, ЧТО_ЗАМЕНИТЬ, ЧЕМ_ЗАМЕНИТЬ));



Вот, решил всетаки написать, возможно пригодится. Так же можно сделать и как прототип. Но это уже сами wink.gif

Rohan
Цитата(tiHo @ 11.07.2006 - 19:13) *

Замена символов в строке.

а если то что надо заменить встречается несколько раз? Вот вам: нестандартно и работает =)
Код
String.prototype.replace = function(str1:String,str2:String):String{
    var p:Array = this.split(str1);
    return p.join(str2);
}
//USAGE:
var a:String = "Hello 2 you!";
a = a.replace("2","to");
trace(a);

кому не нравятся прототипы - можете убрать; мне не нравятся, я не пользуюсь AS1, но из двух зол... =)
tiHo
Rohan, я тоже пытался сначала через прототип, потому что вроде как проще, но мне выдовало ошибку. Вот ща проверил твой код и снова:

Код

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 8:
There is no method with the name 'replace'.
a = a.replace("2", "to");


dry.gif
Rohan
Цитата(tiHo @ 12.07.2006 - 15:17) *

Rohan, я тоже пытался сначала через прототип, потому что вроде как проще, но мне выдовало ошибку. Вот ща проверил твой код и снова:

елы-палы, люди, мне что - на колени стать? Ну пожалуйста, очень прошу, поставьте восьмой флеш! Или хотя бы МХ2004! Ну это же не общение а **гня какая-то получается =(( Бедняге МХ-у уже лет 6, сколько можно???
Вообще, попробуй обращаться как a["replace"]("2","to") - может ему полегчает...
tiHo
Цитата(Rohan @ 12.07.2006 - 16:31) *

елы-палы, люди, мне что - на колени стать? Ну пожалуйста, очень прошу, поставьте восьмой флеш! Или хотя бы МХ2004! Ну это же не общение а **гня какая-то получается =(( Бедняге МХ-у уже лет 6,


laugh.gif biggrin.gif

у меня mx2004pro я тока сней и работаю, так что проблема в чем то другом.
MustLive
Цитата
Бедняге МХ-у уже лет 6

Только 4, т.к. вышел он в 2002 (6 - это версия флеша).

А у tiHo 7 флеш. он об этом уже говорил неоднократно.

P.S.

Саша! А почему ты до сих пор 8й не поставил? smile.gif Остал от жизни. И от Рохана tongue.gif Я ж говорил ранее, что на форуме есть ссылка на 8-мёрку с креком. Сам пользуюсь 8м с января 2006 wink.gif

P.P.S.

И в 8м флеше всё прекрасно работает.

Так что в плане 8го Рохан всё хорошо написал, молодец. А вот почему в седьмом не работает - это нужно разбираться.
tiHo
я ставил себе 8 флеш, но чемно она меня непроперла biggrin.gif

там у меня trace() неработает, а хотя лан, скачаю посматрю. Я и в 7 то еле еле тяну. laugh.gif




ВСЕ, ПРОБЛЕМА СНЯТА. УСТАНОВИЛ ДРУГУЮ ВОСМЕРКУ И ВСЕ ОК. ТЕПЕРь БУДУ СМАТРЕТЬ ЧТО НОВОГО. ОСОБЕННО ИНТЕРЕСНО О СЕРВЕР-КЛИЕНТ(ЕСЛИ ЕСТЬ), И РАБОТА С БИТМАП-ДАННЫМИ.
MustLive
Цитата
Замена символов в строке.

Вот, решил всетаки написать, возможно пригодится.

Должно пригодится. Хотя во флеше пока с такой необходимостью не сталкивался, но это нормальная ситуация (в языках программирования) - замена символов в строке. Так что данная функция не помешает.

Особенно в виде метода (под флеш 8) предложенного Роханом.
tiHo
Цитата(MustLive @ 16.07.2006 - 03:26) *

Особенно в виде метода (под флеш 8) предложенного Роханом.


я вас просил написать(в другом посте просил), ноль эмоций. вот пришлось попозорится и написать самому, чтобы(как я и думал) подтолкнуть кавонибудь из вас написать чтото более продвинутое чем мое.

PS> а использовать ето можно для подсветки синтаксиса для форума, или например чтобы светился в самой флешке, чтото типа:

идет проход в цикле через весь массив "зарезервированных слов" и замена их на html форматирование. например:

_root заменить на

<font color="#0000ff">_root</font>

вот. оч даже нормально. и еще можно наверно(я незнаю), сделать так, чтобы все что при редактировании поста у нас на форуме все что находится в тегах [СODE][/CОDE] отправлялось в новую флешку, где форматировалось, и выдовалось в виде самой этой флешке, с выделяемым текстом. Очень удобно и я думаю неочень сложно.

нрмально объяснил?? smile.gif laugh.gif
Русская версия IP.Board © 2001-2007 IPS, Inc.