Просмотр полной версии : Каким образом в Флексе или же AS3 можно позиционировать обьекты ?
КАк , в Флеше (как мы его понимаем сейчас делается просто
_x+=1; и полетели а тут как , интерфреймов нету , да и вообще пока лес дремучий .....
1. Задать координаты x и y в тэгах.
2. Эффект Move
Дело в том, что Flex двигает программирование под Flash Platform в направлении классического подхода: так сказать, "событийно-листнеровой модели мира", а не извратов типа onEnterFrame. То есть для всего у нас есть инструменты, а не способы почесать пяткой ухо. Если инструментов нет -- мы их сами сделаем.
Почитай Developing Flex Applications, это лучшая книга из всей доки, написанной командой, которую возглавляет Джен ДеХаан.
Особенно тебе интересна будет 462 страница, я думаю ;)
Чтобы лезть в AS3 хорошо бы иметь опыт с Java / C#, а также самим Flex. Это не упрек тебе, это просто факт, я сам в этом вижу пока только верхушку айсберга :)
насчет извратов типа onEnterFrame: интерфрейм никуда не делся, все можно реализовать и в старом стиле, только надо подписать объект (причем любой, а не только мувиклип) на прослушку "enterFrame", плюс Timer, плюс мног чего вкусного..
Это понятно, весь старый функционал сохранен. "Библиотека" только уже совсем иначе реализована и swc имеют уже иной смысл (как jar в Java).
только надо подписать объект (причем любой, а не только мувиклип) на прослушку "enterFrame", плюс Timer, плюс мног чего вкусного..
Silin а можно поподробнее об этом , ну хотябы с маленьким примерчиком :rolleyes:
если с маленьким
package {
import flash.display.MovieClip;
import flash.events.*;
public class testMove extends MovieClip {
public function testMove() {
var mc:MovieClip=new MovieClip();//мувик
mc.graphics.beginFill(0);//рисуем
mc.graphics.drawCircle(0,0,20);
addChild(mc);//аттачим к родителю
mc.addEventListener("enterFrame",onEnterFrame);//регисрируем листенер
}
private function onEnterFrame(e:Event){//она же и есть листенер
e.target.x+=1;
}
}
}
если с не очень маленьким, то сюда (http://www.flasher.ru/forum/showthread.php?t=72041) или сюда (http://silin.fatal.ru/AS3/index.html)
Каждый объект во Flex -- компонент с id. Ему так же, как ты делал во Flash, можно прибить событие. У него тот же самый UIEventDispatcher.
yana_flash
03.05.2007, 16:02
Попробовала воспользоваться примером. addChild(mc) выдает сообщение об ошибке:
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@515c5b1 to mx.core.IUIComponent.
Что в данном случае делается не так?
Аттачить можно только наследников UIComponent. Ну или на Canvas.
yana_flash
03.05.2007, 17:00
Увы, не вышло:
...
<mx:Canvas x="10" y="16" width="500" height="361" id="canvasMap" borderStyle="solid">
<mx:Image x="10" y="10" width="478" height="339" id="imgMap"/>
</mx:Canvas>
...
public var mcMap:MovieClip;
...
mcMap=new MovieClip();
mcMap.graphics.beginFill(0);//рисуем
mcMap.graphics.drawCircle(0,0,20);
canvasMap.addChild(mcMap);//аттачим к родителю
При запуске canvasMap.addChild(mcMap) выдает:
TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::MovieClip@4fab5b1 to mx.core.IUIComponent.
http://flash-ripper.com/archives/001659.php
yana_flash
03.05.2007, 20:53
Спасибо, изучаю :)
yana_flash
04.05.2007, 13:59
Спасибо, спрайт удалось приаттачить. Но когда попыталась загрузить в него (точнее, в позже приаттачиваемый мувиклип) картинку, при запуске происходит ошибка:
TypeError: Error #1006: loadMovie is not a function.
public var sprMap:UISprite;
...
sprMap=new UISprite();
var mySprite:Sprite = new Sprite();
var mcMap:MovieClip = new MovieClip();
mcMap.graphics.beginFill(0);//рисуем
mcMap.graphics.drawCircle(0,0,20);
mcMap.loadMovie("http://myserver/flash/map.jpg");
sprMap.addChild(mcMap);//аттачим к родителю
sprMap.setSprite(mySprite);
Без строки mcMap.loadMovie("http://myserver/flash/map.jpg") все нормально работает.
Как во флексе загрузить картинку в MovieClip?
Метода loadMovie в AS3 нет. Читайте справку.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.