ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение bodnar »

С чего вдруг? Ты туда передаешь функцию-слушатель которая принимает параметром событие. Не важно как задаешь, суть не меняется.
moto
Сообщения: 122
Зарегистрирован: 05 апр 2010, 23:08

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение moto »

Безмерно благодарен, чуваки!!!! всем спасибо за помощь 8-)
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение psix55 »

bodnar писал(а):С чего вдруг? Ты туда передаешь функцию-слушатель которая принимает параметром событие. Не важно как задаешь, суть не меняется.
У меня и так работает...
r128
Сообщения: 1
Зарегистрирован: 01 фев 2011, 16:18

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение r128 »

Всем привет!
Я во флеше новичёк. Позавчера скачал Flash Builder 4, создал Flex проект, создался mxml файл и я накодил туда такую штуку

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"                xmlns:s="library://ns.adobe.com/flex/spark"                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">    <fx:Declarations>        <!-- Разместить невизуальные элементы (например, службы или объекты значений) -->    </fx:Declarations>        <fx:Script>        <![CDATA[            import flash.events.*;            import flash.display.*;            button.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);            private function onKeyPressed(event:KeyboardEvent):void{              if (event.keyCode == 38) {                  button.y = button.y - 1;               }             }        ]]>    </fx:Script>        <s:Button x="138" y="88" label="Кнопка" id="button"/>    </s:Application> 
т.е. есть одна кнопка, которая при нажатии стрелки вверх должна ползти вверх(или вниз, пока не разбирался с этим).

при попытке запуска вылазит вот такое:

Код: Выделить всё

Описание    Ресурс    Путь    Расположение    Тип1120: Обращение несуществующего свойства button.    keydowntest.mxml    /keydowntest/src    Строка 13 Проблема Flex1120: Обращение несуществующего свойства onKeyPressed.  keydowntest.mxml    /keydowntest/src    Строка 13 Проблема Flex
import, насколько я понял писать было необязательно
button.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); - пробовал без "button." эффект тот же, только в тексте ошибки вместо button появляется stage

как такое исправляется? :?:
stage нужно как-то инициализировать?
Sasha
Сообщения: 53
Зарегистрирован: 18 дек 2010, 20:48

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Sasha »

Есть код PHP

Задача : надо получить и обработать результат (результат в xml)

и вывести в текстовом поле с именем result

вот php :

Код: Выделить всё

<?php// данные доступа к базе данных$db_host="localhost";   // обычно не нужно изменять$db_user="******";    // имя пользователя БД$db_password="******";    // пароль БД$db_name = "******";  // имя БД$table_name = "stat";   // имя таблицы статистики  // соединение с БДmysql_connect($db_host, $db_user, $db_password) or die (mysql_error());mysql_select_db($db_name) or die (mysql_error());mysql_query("SET NAMES 'utf8'"); // Выполняем запрос: выбрать ID пользователей, которые посетили приложение более 10 раз$query = 'SELECT * FROM `'.$table_name.'` WHERE `visits`>10;';$sql = @mysql_query($query); // обрабатываем полученный результатecho '<?xml version="1.0" encoding="UTF-8"?><response>';while ($sql_data = @mysql_fetch_array($sql)) {  echo '<uid>', $sql_data['uid'], '</uid><visits>', $sql_data['visits'], '</visits>','<level>', $sql_data['level'], '</level><money>', $sql_data['money'],'</money>';}echo '</response>'; // выводим данныеwhile ($sql_data = @mysql_fetch_array($sql)) {    echo $sql_data['uid'].' - '.$sql_data['visits'].'<br />';} ?>
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Nick Lisogor »

Как вы считаете, через какой метод можно реализовать пересечение одного Sprite, либо Shape с другим, при этом объекты могут быть в любом наклоне по всем трем осям?
Последний раз редактировалось Nick Lisogor 01 фев 2011, 21:53, всего редактировалось 1 раз.
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Nick Lisogor »

Sasha, советую выучить тебе PHP , а не копировать скрипты из уроков ;)
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение bodnar »

Nick Lisogor
эммм, hittest?
Аватара пользователя
Евгений
FL Team
FL Team
Сообщения: 776
Зарегистрирован: 10 июн 2010, 11:01

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Евгений »

Nick Lisogor,

Код: Выделить всё

var bmpd1:BitmapData;var bmpd2:BitmapData;stage.align = StageAlign.TOP_LEFT;stage.scaleMode = StageScaleMode.NO_SCALE; // создаем два растровых изображенияbmpd1 = new BitmapData(stage.stageWidth,stage.stageHeight,true,0);bmpd2 = bmpd1.clone(); // очищаем растровые изображенияbmpd1.fillRect(bmpd1.rect, 0);bmpd2.fillRect(bmpd2.rect, 0); // отрисовываем каждый объект в своем растровом изображенииbmpd1.draw(mc, new Matrix(1, 0, 0, 1, mc.x, mc.y));bmpd2.draw(mc2, new Matrix(1, 0, 0, 1, mc2.x, mc2.y)); // проверяем столкновениеif (bmpd1.hitTest(new Point(), 255, bmpd2, new Point(), 255)){    trace("Произошло столкновение объектов!");}
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ

Сообщение Nick Lisogor »

Большое спасибо bodnar и Евгений, я пробовал эти методы, но они не помогли мне, скорее всего, из-за наклона.

Вот фрагмент моего кода, больше всего мне понравился способ Евгения. Суть кода в том, что он считывает координаты x и y из массива и создает квадраты по ним, после чего проверяет их на соприкосновение с кругом. Как считаете, что может быть не так? Буду очень благодарен за любые ответы по данному вопросу.

Код: Выделить всё

package{    import flash.display.*;    import flash.geom.*;        public class Test extends MovieClip    {                var zone_sprites:Array = new Array();        var zone_rects:Array = new Array();        var zone_sprite:Sprite;        var zone_rect:Rectangle;                public function Test():void        {            testFunction();                        var rects:Array = new Array(140,185,185,185,230,185,275,185,320,185,365,185,410,185,455,185,500,185,545,185,590,185,635,185,140,225,185,225,230,225,275,225,320,225,365,225,410,225,455,225,500,225,545,225,590,225,635,225,140,265,185,265,230,265,275,265,320,265,365,265,410,265,455,265,500,265,545,265,590,265,635,265,140,305,185,305,230,305,275,305,320,305,365,305,410,305,455,305,500,305,545,305,590,305,635,305,140,345,185,345,230,345,275,345,320,345,365,345,410,345,455,345,500,345,545,345,590,345,635,345,140,385,185,385,230,385,275,385,320,385,365,385,410,385,455,385,500,385,545,385,590,385,635,385,140,425,185,425,230,425,275,425,320,425,365,425,410,425,455,425,500,425,545,425,590,425,635,425,140,465,185,465,230,465,275,465,320,465,365,465,410,465,455,465,500,465,545,465,590,465,635,465,140,505,185,505,230,505,275,505,320,505,365,505,410,505,455,505,500,505,545,505,590,505,635,505,140,545,185,545,230,545,275,545,320,545,365,545,410,545,455,545,500,545,545,545,590,545,635,545);                        for(var _zone_rects = 0; _zone_rects < rects.length; _zone_rects += 2)            {                zone_rect = new Rectangle(rects[_zone_rects],rects[_zone_rects+1],45,40);                zone_rects.push(zone_rect);                                zone_sprite = new Sprite();                zone_sprite.graphics.lineStyle(1, 0x000000, 0.1);                zone_sprite.graphics.beginFill(0x000000, 0.2);                zone_sprite.graphics.drawRect(zone_rect.x,zone_rect.y,zone_rect.width,zone_rect.height);                zone_sprite.graphics.endFill();                zone_sprite.rotationX = -35;                zone_sprite.z = 100;                addChild(zone_sprite);                zone_sprites.push(zone_sprite);            }        }                private function testFunction():void        {            var mc:Sprite = new Sprite();            mc.graphics.lineStyle(1, 0x000000, 1);            mc.graphics.beginFill(0x00FF00, 1);            mc.graphics.drawCircle(265, 230, 80);            mc.graphics.endFill();            addChild(mc);            mc.rotationX = -35;            mc.z = 100;                        var owerview_rect_bmpd:BitmapData;            var current_shape_bmpd:BitmapData;                        stage.align = StageAlign.TOP_LEFT;            stage.scaleMode = StageScaleMode.NO_SCALE;                        owerview_rect_bmpd = new BitmapData(stage.stageWidth,stage.stageHeight,true,0);            owerview_rect_bmpd.fillRect(owerview_rect_bmpd.rect, 0);            owerview_rect_bmpd.draw(mc, new Matrix(1, 0, 0, 1, mc.x, mc.y));                        current_shape_bmpd = new BitmapData(stage.stageWidth,stage.stageHeight,true,0);                        for(var i = 0; i < zone_sprites.length; i ++)            {                //Очистка                current_shape_bmpd.fillRect(current_shape_bmpd.rect, 0);                                //Добавление объекта в растровое изображение                current_shape_bmpd.draw(zone_sprites[i], new Matrix(1, 0, 0, 1, zone_sprites[i].x, zone_sprites[i].y));                                //Проверка                if (owerview_rect_bmpd.hitTest(new Point(), 255, current_shape_bmpd, new Point(), 255))                {                    trace("Объекты столкнулись");                }            }        }    }}
Ответить