Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.03.2007, 19:18
MaxD вне форума Посмотреть профиль Отправить личное сообщение для MaxD Найти все сообщения от MaxD
  № 1  
Ответить с цитированием
MaxD
[++1.3 11.01.07]
 
Аватар для MaxD

Регистрация: Jan 2007
Адрес: Ukraine, Kyiv
Сообщений: 104
По умолчанию Програмное создание Canvas'a

Такой вопрос: мне нужно создать програмно Canvas (то есть
Код:
myCanvas:Canvas = new Canvas();
)
В задумке он должен выглядеть примерно так:

Код:
<mx:Canvas x="23.5" y="7" width="210"  height="154" 
	moveEffect="myMove" resizeEffect="myResize" 
	backgroundImage="assets/item.jpg" id="myCanvas0"/>
Это если через дизайнерские панели.

Програмно для того, чтобы добавить к этому Canvas'у backgroundImage, я пишу
Код:
myCanvas.setStyle("backgroundImage","assets/item.jpg");
Вопрос: а как добавить эффекты moveEffect="myMove", resizeEffect="myResize" ???

Есть какой-то Canvas.registerEffects(effects:Array), но я не понял, как с ним работать и оно ли это вообще.

Старый 22.03.2007, 19:35
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Как-то так:
Код:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();">
	<mx:Script>
		<![CDATA[
			import mx.controls.Text;
			import mx.effects.WipeDown;
			import mx.containers.Canvas;
			private function init():void {
				var can:Canvas = new Canvas();
				can.setStyle('mouseDownEffect',WipeDown);
				can.setStyle('borderStyle','solid');
				var tf:Text = new Text();
				tf.text = 'TEST';
				can.addChild(tf);
				addChild(can);

			}
		]]>
	</mx:Script>
</mx:Application>


Последний раз редактировалось etc; 22.03.2007 в 19:44.
Старый 23.03.2007, 14:26
MaxD вне форума Посмотреть профиль Отправить личное сообщение для MaxD Найти все сообщения от MaxD
  № 3  
Ответить с цитированием
MaxD
[++1.3 11.01.07]
 
Аватар для MaxD

Регистрация: Jan 2007
Адрес: Ukraine, Kyiv
Сообщений: 104
А как можно обращаться к созданному таким образом канвасу из других функций? Даю я ему id=myCanvas1, например, но если позже в функции написать что-то типа myCanvas1.x = ... , то Flex выдает ошибку, что такого объекта не существует.

Старый 23.03.2007, 14:30
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 4  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от MaxD
А как можно обращаться к созданному таким образом канвасу из других функций? Даю я ему id=myCanvas1, например, но если позже в функции написать что-то типа myCanvas1.x = ... , то Flex выдает ошибку, что такого объекта не существует.
кмх, учися писать нормально )
Код:
public var myCanvas : Canvas;
public function createCanvas()
{
myCanvas  = new Canvas()
..........
}
public var можно заменить на private var в зависимости от конкретных целей.

в текущем классе он будет виден везде в любых раскладах )
__________________
33 коровы

Старый 23.03.2007, 16:19
MaxD вне форума Посмотреть профиль Отправить личное сообщение для MaxD Найти все сообщения от MaxD
  № 5  
Ответить с цитированием
MaxD
[++1.3 11.01.07]
 
Аватар для MaxD

Регистрация: Jan 2007
Адрес: Ukraine, Kyiv
Сообщений: 104
Спасибо, конечно. Эт я знаю.

Фишка в том, что я одну и ту же заготовку Canvas'a использую для создания нескольких canvas'ов, т.е.

Код:
private function duplicate():void{
		for (var i:int=1; i<9; i++){
		       var myCanvas:Canvas = new Canvas();
		       myCanvas.id=String("myZeroCanvas" + i);
		       myCanvas.x = 100*i;

		       ...
                   }
}
Сейчас я к нему (ним) обращаюсь так:

Код:
MainCanvas.getChildAt(0).x = ....
где MainCanvas - поле, в котором эти канвасы создаются, 0 - индекс.

Старый 23.03.2007, 17:23
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 6  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
Цитата:
Сообщение от MaxD
Спасибо, конечно. Эт я знаю.

Фишка в том, что я одну и ту же заготовку Canvas'a использую для создания нескольких canvas'ов, т.е.

Код:
private function duplicate():void{
		for (var i:int=1; i<9; i++){
		       var myCanvas:Canvas = new Canvas();
		       myCanvas.id=String("myZeroCanvas" + i);
		       myCanvas.x = 100*i;

		       ...
                   }
}
Сейчас я к нему (ним) обращаюсь так:

Код:
MainCanvas.getChildAt(0).x = ....
где MainCanvas - поле, в котором эти канвасы создаются, 0 - индекс.
Код:
public var myCanvases : Array = new Array(); //лучше это не делать таким образом, а делать это в конструкторе/ините
public function createCanvas() : void
{
for (var i:int=1; i<9; i++){
		       var myCanvas:Canvas = new Canvas();
		      myCanvases.push(myCanvas);
		       ...
                   }
..........
}
__________________
33 коровы

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.